关于C程序的编译问题
想问下在不同的操作系统比如说windows和linux下用同样的C程序代码进行编译(当然编译器不一样)是不是可以实现相同的功能?比如说同样的一组文件存储的C代码,在两种操...
想问下在不同的操作系统比如说windows和linux下用同样的C程序代码进行编译(当然编译器不一样)是不是可以实现相同的功能?比如说同样的一组文件存储的C代码,在两种操作系统上都能实现文件存储?是不是C程序在编译过程中调用的两个系统的API不同,但实现的功能是相同的(比如文件存储)?
展开
2个回答
展开全部
如果你要跨平台编译C程序,有很多要注意的。
1 基本上来说,依赖的头文件和动态库本身必须是跨平台的。(windows的MFC就不要提了。)
2 程序中如果涉及的内存操作,得关注类型位长是否一致。
3 操作系统差异,有些技术和实现细节并不通用,例如linux的一些LPC操作WINDOWS没有、线程操作有差异等等。
4 还有编译器对c的标准实现不一致。(c的标准化实现差异还不算大,c++就差异很大了)
5 还有部分系统差异。例如:路径表示不一样等等。
其他的就是细节了。
1 基本上来说,依赖的头文件和动态库本身必须是跨平台的。(windows的MFC就不要提了。)
2 程序中如果涉及的内存操作,得关注类型位长是否一致。
3 操作系统差异,有些技术和实现细节并不通用,例如linux的一些LPC操作WINDOWS没有、线程操作有差异等等。
4 还有编译器对c的标准实现不一致。(c的标准化实现差异还不算大,c++就差异很大了)
5 还有部分系统差异。例如:路径表示不一样等等。
其他的就是细节了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询