c语言的库函数是谁编写的?

来源:百度知道 编辑:UC知道 时间:2024/06/06 06:11:30
不同的编译器厂家编写各自不同的库函数?
比如一个printf函数,microsoft自己编一个,borland公司自己再编一个?

linux是开放源码,但是这个c库函数的源码和linux没有关系吧?linux只是开放操作系统的源码?
3楼已经说的很精彩了:但是有一点,似乎有点问题,能否进一步解释:
你说
Windows的API是基于C、C++的?
但是我觉得C的库函数是基于windows api的,我觉得应该是windows api是最底层,往上
来一点就到了C库函数,所以程序员能调用C库函数就调用C库函数,不行的话,再往下去找windows API
究竟是谁基于谁呢?

计算机语言和计算机操作系统是两个层面上的东西。

C(包括C++)是贝尔实验室开发的,其所属公司AT&T公司早已倒闭,所以已经是没有爹娘的孩子,根本没有什么标准化组织。现在主要的两个C语言标准:C89和C99都是各个厂商实现各自的C,经过市场竞争以后形成的事实标准,后经ANSI(美国国家标准化委员会)认定所形成的美国标准,继而又被ISO组织采纳为事实标准。

有标准以后各个厂商按照标准修改自己的产品,有的还提供各种选项供用户选择使用何种标准(如VC++工程属性里的各种设置),以实现“源程序级兼容”。

C中各种函数,如printf函数,涉及到操作系统界面,在不同平台上的实现肯定是不一样的。stdio.h,conio.h在硬盘上都有确实的文件的,可以打开看看函数的定义,都是一些#define之类的。具体实现功能的东西在.obj,.lib这些文件里面,有部分是用汇编写的,全部都是没有源代码的。 但是其他的通用函数可能是一样的,比如C++STL,都是HP和SGI的标准版。

linux开源,开得是linux的源,当然不包括库函数。

操作系统的API,全称application programming interface,即"应用程序接口",是操作系统提供的功能,操作系统将硬件裸机包装成虚拟机,提供多种接口供用户调用。Linux、Windows的API是基于C、C++的,DOS的API是基于汇编语言的。

既然C是接近硬件的语言,只要不违反操作系统的安全性、稳定性等限制,大可以跳开API直接操作硬件。这样无异于自己编写操作系统,所以C语言如果真的有楼主所述“只用这些函数就能解决问题”这一天,那么那个时候的C语言就已经发展成为操作系统了。

C标准是由标准c委员会维护的。
它规定这个函数参数个数,类型,返回值及函数功能,实现方法应该没强制要求。
比如MS和borland如果不把printf实现方法开源,其他编译器厂商也只好自己写咯。
我觉得C库是DOS下沿用至今的产物,在win32下还是需要win api的。不然你什么都做不了。
api和c库都是用户接口,都是方便你