A. linux下的c语言编程和windows下的c语言编程有什么区别
函数库的区别linux下的C函数库和windows下的函数库系统调用的机制不一样
Glibc包含了主要的C库。这个库提供了基本例程,用于分配内存、搜索目录、打开关闭文件、读写文件、字串处理、模式匹配、数学计算等等。所说的机制不一样不单是指中断号的问题,中断号也是通过input参数和output把函数地址和输出地址定位在寄存器的,那些函数在windows和linux下的实现应该是不一样的,就拿文件系统来说,ext3和fat32的怎么可能一样.还有mm内存管理,都是不一样的.中断还是属于硬件层的,X86上的应该都差不多,但操作系统层的实现就大不相同了.
其他区别:
1。系统平台不一样
底层开发就涉及到了系统内核的问题,对于linux来说,你可以知道它里面是什么结构,而windows。。。
2。编译器环境不一样
linux采用gcc编译器,gdb调试工具,和多种可视化的编辑器如 emacs,kedit等等,也有文本的vi/vim,GDB的功能是非常强大的,个人认为较win下的好
尽管win下地mingw,devcpp集成了gcc,但是搞的总让人不爽~,gcc对标准的支持是相当的好
3。针对人群不一样
win下主要还是面向商业化的开发,而绝大多数的编程爱好者则喜欢属于自己开阔自由的系统下编程,不愿意禁锢在windows下(MS)的包围中
4。发展方向不一样。
OpenSource的思想已经在linux这片净土开花,参见GPL....。找资料方便,源代码公开,可以体验开发的乐趣
win下,ms逐步把一批开发人员束缚在它自己的系统里面,开发环境越来越傻瓜,这能不能叫人性化呢?搞到最后。。。可能越走越远~
5。版权问题
win下的好多好多东西都涉及到版权问题,linux的free软件虽然是开放软件,不过好多好多都是免费用于商业化的。。。当然有的需要开发源代码,好多也不需要~
C++的区别也差不多
B. gcc编译的软件是否可以商业化
首先,GPL并不禁止商业化。GPL只是规定你在很多情况下要开放源代码。
GPL中,软件所“生产”出的东西是可以不用开放源代码的。也就是说GCC编译出的东西可以商业化。但是要注意的是,GCC编译可能会用到的一些库是GPL的,你编译的时候链接了这些库的话,就构成了“在其基础上建立”。也就是说使用了这些库的东西需要开放源代码。
好在,我记得现在Linux下的C运行时库是LGPL的。
C. c++各种编译器有什么不同,应该不存在哪种编译器最好的说法吧是不是只要学会用一种编译器就可以了
gcc过去是指gnu组织的c语言编译器,
现在gcc包括gcc命令在内都是gnu的各种语言的编译器集。
在类linux环境输入gcc可以指定编译各种语言。c/c++,objc,ada,pascal,d,fortran等等
g++是专指gnu c++的编译器,属于gcc的一个编译器。
而且要指出g++, dev c++, codeblocks, mingw,等等其实都是在用gcc编译器中c/c++的部分。
各适合做什么?
vc++在win下优势最强,在x86指令下性能优化、标准支持是最好的之一,性能仅次于intel cc,但综合性能最强。
borland c++,现在已经被c++ builder 2012取代了。这个版本的优势也是同vc++类似,在win加x86的cpu下。特别之处是丰富的组件和快捷向导方案,自动生成代码很多。做常用的网络、数据库,桌面应用,很多时候都不用敲什么代码,直接鼠标一阵拖拉就出来了,适合做又快又脏的应用。性能优化不如vc++
gcc是开源软件的核心组件,linux/unix,全靠它编译,支持几乎世上所有的32位以上芯片,什么手机、龙芯、pc,power pc, arms,大设备小设备都靠它。最朴素,但性能强大。适用于任何需要计算的场合。经过多个巨头砸巨资优化过的编译器,性能是一流的。移植性一流。标准化程度也是一流。就是开发工具—打字码字的工具IDE,没有像前2个那样商业化,。