在Linux中与在windows下编写C语言的相同与不同
2015-11-15 本文已影响0人
嘈杂碎碎念
C语言是一种面向底层的编程语言,要写好C程序,必须对操作系统的工作原理非常清楚,因为操作系统也是用C写的,我们用C写应用程序直接使用操作 系统提供的接口。Linux是一种开源的操作系统,你有任 何疑问都可以从源代码和文档中找到答案,即使你看不懂源代码,也找不到文档,也很容易找个 高手教你,各种邮件列表、新闻组和论坛上从来都不缺乐于助人的高手;而Windows是一种封闭 的操作系统,除了微软的员工别人都看不到它的源代码,只能通过文档去猜测它的工作原理,更糟糕的是,微软向来喜欢藏着揶着,好用的功能留着自己用,而不会写到文档里公开。
在编写程序的过程中,如果都是使用C语言标准库,比如scanf和printf函数,基本上一样的,没有涉及到系统的库函数或者编程方法(即只用符合ANSI C标准的代码和方法)的时候就没有什么区别。
如果涉及到系统编程,二者就有所区别,主要是库函数有所不同,而且文件的系统也不同、对某些函数的执行方式也不同。C语言的底层开发就涉及到了系统内核的问题,对于linux来说,可以清楚的知道它里面是什么结构。编辑器环境不一样,linux采用gcc编译器,gdb调试工具,和多种可视化的编辑器如emacs、kedit等等,也有文本的vim,GDB的功能是非常强大的。另外,所针对的人群也有所不同,windows主要是面向商业化的开发,而绝大多数的编程爱好者则属于自由开阔的系统下编程,不愿意禁锢在windows下。此外,在版权问题方面,也有很大的差别。windows系统下面好多好多东西都涉及版权问题,linux的free软件虽然是开放软件,不过好多都是免费用于商业化的。