如果我使用C或C++编写程序,例如在Windows上。那么是否保证我可以在其他操作系统(如Mac OS、Linux、类Unix系统)上编译和运行它?这是否意味着C或C++是跨平台语言?
如果我使用C或C++编写程序,例如在Windows上。那么是否保证我可以在其他操作系统(如Mac OS、Linux、类Unix系统)上编译和运行它?这是否意味着C或C++是跨平台语言?
如果您编写的 C 或 C++ 程序严格符合某个标准,那么该程序应该可在任何提供遵循该标准的工具链的平台上运行。从这个意义上说,C 和 C++ 是跨平台语言。
像cygwin这样的环境可以帮助实现在Windows * nix中的跨平台兼容性。
您可以编写标准C库,没有依赖于平台库的依赖关系,这将非常可移植。
如果你直接访问任何Windows API,它将无法在其他平台上运行(甚至无法编译)。如果你使用间接访问正确API的标准函数,或者添加#ifdef保护并访问正确的平台API,则答案更好。前者应该是跨平台的。后者将适用于你的代码所服务的平台。
对于Mac OSX、Linux和当然的Windows,你可以编写和编译C++。从个人经验来看,我发现Windows对于C++的使用最容易,其次是Linux,而Max OSX则远远落后。根据我的经验,编译器往往比较难以处理,要么是因为Windows上的C++支持社区更好,要么是因为它自然更适合编程,我总是遇到更少的问题。虽然我把它标记为第二名,但我在Linux方面没有那么多的经验。
编辑:你说“保证”运行和编译。对于基本的C++来说,这肯定是正确的,但一些更高级的功能可能在不同的平台上有不同的支持。