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。
首先,要说下编译器的事..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。
参考资料: 我的经历
展开全部
调用的函数库 不同
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我只举一些例子 每个不同点可能有别的代替
linux WIN
编译器不同 g++ VC
用的库不一样 函数有些不同 函数有些不同
进程间通信方式不一样 可以有共享内存 没有共享内存
linux WIN
编译器不同 g++ VC
用的库不一样 函数有些不同 函数有些不同
进程间通信方式不一样 可以有共享内存 没有共享内存
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在不同的操作系统下要用不同的编译器,如果都是用 C++ 语言编写 ,则编译出来的目标代码不同,对于简单的程序它们没有什么太大的区别
只要是相同的C++标准 在任何操作系统下语言都是一样的,对于不同的地方就涉及到平台相关的部分。具体到可能是调用到的库函数可能会有所不同。
只要是相同的C++标准 在任何操作系统下语言都是一样的,对于不同的地方就涉及到平台相关的部分。具体到可能是调用到的库函数可能会有所不同。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询