linux和win编写的区别

Linux 简单的说跟 Windows 一样是一种操作系统,只是两者之间的使用方法和习惯有所区别。
一、两者区别:
1)一个开放源代码一个不开放
2)系统的结构不一样
比如说 设备都可以像访问文件一样访问,脚本语言很强大操作方式有差别
3)c程序方面,用的函数库不一样,只要函数库、有些如文件系统表示方面的差异解决好了,编译的程序可以通用。函数库的区别linux下的C函数库和windows下的函数库系统调用的机制不一样Glibc包含了主要的C库。这个库提供了基本例程,用于分配内存、搜索目录、打开关闭文件、读写文件、字串处理、模式匹配、数学计算等等。所说的机制不一样不单是指中断号的问题,中断号也是通过input参数和output把函数地址和输出地址定位在寄存器的,那些函数在windows和linux下的实现应该是不一样的linux的核心也是C语言写的,C程序通常是用文本编辑器写,GCC编译器编译,make来管理项目,虽然也有集成开发环境,但很多都不需要,win的编程高手也是用的文本编辑器开发。
4)linux的命令行(就像win里的cmd)很强大,可以一次完成很复杂的任务而不需要写软件。Linux编程C语言用的比较多一些,C++语言也常用,Linux编程调用的接口叫做“系统调用”,C标准库、第三方开源C/C++库也是常用的,Linux编程会用到许多代码库,代码库选择上比较灵活;但是Windows编程C语言就用的少了,用C语言调用Windows API编程叫做Win32编程,微软将Windows API作了C++封装,封装成了C++库叫MFC,因为MFC库是和微软编程工具VC++/VS进行捆绑的,加上MFC编程的便捷,所以Windows编程C语言用的比较少,而C++语言用的比较多,后来微软退出.NET平台后,C#语言也成为了Windows编程的主流语言。
5)另外就是Linux编程,编写命令行程序仍然占很大比例,而Windows命令行编程已经非常少了,Windows主要是图形界面编程。还有就是Linux上脚本编程很普遍,而Windows上脚本编程的程序规模都比较小,鉴于脚本语言(除了shell脚本)是跨平台的,在Windows上也可以用,而且有些脚本编程属于Web开发的范畴,这里就不讨论了。
二、 C语言的数学库函数与标准库函数的不同?
1)数学函数是标准库函数的一种;标准库函数优先使用了,可实现平台无关。应用程序接口API函数是平台相关的
2)编译器函数是指MFC/VCL之类的类库函数吧,打包成程序后必须带上函数库
3)标准库函数是由一个语言的标准来决定的,API函数是由操作系统提供的;标准库函数大多数时候也要通过调用api函数来达到目的。
linux下的qt,是个GUI库,类似windows下的mfc,但是是用标c++实现的。
标准库函数:是一种程序规范,提供一套标准的函数,可能有好几种规范,如c99,标准c
编译器函数:是用来告诉编译器怎么编译你的程序的,如#define,#typedef
API函数:操作系统提供,的函数用来支持这个平台上的操作的,如MFC
标准库是一种规范和标准可以非常方便的跨平台
编译器函数一般是编译器的类库提供的
API一般由操作系统来提供
后两者都有一定的局限性

你可能感兴趣的:(软件)