Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以运行C和C++;在任何平台上? 如果我用C或C++写的,例如:Windows。它是否保证我可以在任何其他操作系统(如Mac OS、Linux、类Unix系统)上编译和运行它?那么,这是不是C或C++是跨平台语言?< /p>_C++_C_Operating System - Fatal编程技术网

我可以运行C和C++;在任何平台上? 如果我用C或C++写的,例如:Windows。它是否保证我可以在任何其他操作系统(如Mac OS、Linux、类Unix系统)上编译和运行它?那么,这是不是C或C++是跨平台语言?< /p>

我可以运行C和C++;在任何平台上? 如果我用C或C++写的,例如:Windows。它是否保证我可以在任何其他操作系统(如Mac OS、Linux、类Unix系统)上编译和运行它?那么,这是不是C或C++是跨平台语言?< /p>,c++,c,operating-system,C++,C,Operating System,如果你写的C或C++程序严格遵守一些标准,那么程序应该在任何一个提供符合标准的工具链的平台上工作。从这个意义上讲,C和C++是跨平台语言。许多很多平台都有C和C++编译器,但是不同的编译器有它们自己的怪癖,它们链接的库在不同的平台上完全不同。Mozilla有一个指南,说明了要使您的软件跨平台,应该使用什么功能,避免什么 像cygwin这样的环境有助于在windows*nix中实现跨平台兼容性 您可以编写库存标准C的库,这些库不依赖于非常可移植的平台库如果直接访问任何Windows API,它将无

如果你写的C或C++程序严格遵守一些标准,那么程序应该在任何一个提供符合标准的工具链的平台上工作。从这个意义上讲,C和C++是跨平台语言。许多很多平台都有C和C++编译器,但是不同的编译器有它们自己的怪癖,它们链接的库在不同的平台上完全不同。Mozilla有一个指南,说明了要使您的软件跨平台,应该使用什么功能,避免什么

像cygwin这样的环境有助于在windows*nix中实现跨平台兼容性


您可以编写库存标准C的库,这些库不依赖于非常可移植的平台库

如果直接访问任何Windows API,它将无法在其他平台上运行(甚至编译)。如果使用间接访问正确API的标准函数,或者添加#ifdef警卫并访问正确的平台API,则答案是更好。前者应该是跨平台的。后者将在你的代码迎合的平台上工作。对于Mac OSX,Linux,当然,Windows,你可以编写和编译C++。从个人经验来看,我一直认为Windows对于C++使用最为简单,紧跟着Linux,并且Max OSX落后于后面。编译器在我的经验中往往是脾气暴躁的,或者因为支持社区对于Windows上的C++更好,或者因为它自然更好地用于编程,所以我总是很少遇到Windows问题。虽然我把它列在第二位,但我在Linux方面没有那么多经验


编辑:你说“保证”运行和编译。对于基本C++,这是肯定的,但是一些更高级的特性可能在跨平台上有不同的支持。这确实取决于你将使用的图书馆。严格来说,C和C++不在任何平台上运行。它们只是可以编译成可运行程序的语言。我认为,有一点很重要,那就是要弄清楚,人们可能想在程序中做的许多事情都需要不跨平台的库。必须选择好你的图书馆。基于你对词语的仔细选择,你会成为一名优秀的律师。因此,如果我有两个相同的编译器在不同的操作系统上运行,那么不管是什么操作系统,它都应该工作,对吗?@user963241除非你坚持使用两种平台上都可用的一组库和(重要的)系统APIa。如果你试图在Windows或Mac OS上编写“本机”应用程序,你将不得不使用在其他平台上不常见的API。我的回答是,虽然它所说的是严格正确的,但措辞谨慎的一组条件使它对典型的实际应用程序没有那么大的用处。编写严格遵守各种平台上可用的任何标准的有用的实际应用程序是非常困难的。几乎在任何实际应用中,都需要对不同平台进行某种调整。