Linux系统下的C++编程与Windos下的C++编程有什么区别?请讲的具体些,谢谢!

如题所述

具体些...编程的区别,先不说编程工具,先说最重要的编译器的问题吧..这个是决定性因素

首先,要说下编译器的事..Linux下面用的是g++,而win下面基本都是VS或者VC++的编译器.两种编译器肯定都认得标准的C++,但是呢,某些细微的语法细节,两者可能稍微不同,比如对变参的定义,还一个例子就是VC里面支持for语句里申请一个变量,这个变量后面可以引用,但是g++就需要加上特定的编译参数才可以编译通过。当然了g++也有些功能是VC不支持的.

然后,前面已经提到了,标准语法都是支持的。如果需要写一个linux和win都通用的C++程序,可能语法需要尽量标准了..

再然后,API的问题.C++标准库和C标准库的函数 ,两者都肯定是支持的。但是系统相关的那部分API可能就需要注意了....比如win下面有waitforsingleobject,Linux下就没这个,它用的是sem_timedwait或者sem_wait等.写通用程序 也必须考虑这些系统API的问题.

再说工具.win下面的IDE有VC,VS,C++ builder等.自带了编辑器...Linux下一般是编辑器和编译分开的,先用vim或者emacs写好程序,然后用g++编译,文件多了就会借助make工具。当然Linux下也有一些IDE,比如codeblocks,anjuta等等开源的IDE,而且这些开源IDE也有win版本。我win下和linux下用的都是开源IDE。

PS:楼上说的共享内存的事情,可以用虚拟内存,就是文件映射的方式来实现,win下面是mapofview,Linux下是mmap。

参考资料:我的经历

温馨提示:内容为网友见解,仅供参考
第1个回答  2010-12-31
调用的函数库 不同
第2个回答  2010-12-31
我只举一些例子 每个不同点可能有别的代替
linux WIN
编译器不同 g++ VC
用的库不一样 函数有些不同 函数有些不同
进程间通信方式不一样 可以有共享内存 没有共享内存
第3个回答  2010-12-31
在不同的操作系统下要用不同的编译器,如果都是用 C++ 语言编写 ,则编译出来的目标代码不同,对于简单的程序它们没有什么太大的区别
只要是相同的C++标准 在任何操作系统下语言都是一样的,对于不同的地方就涉及到平台相关的部分。具体到可能是调用到的库函数可能会有所不同。
相似回答