即使我们编写一个只打印出“hello world”的最简单的C 程序,最后生成的可执行程序也会有几k 的大小,这是为什么呢?别忘了,C 语言要经过编译和链接两个阶段。在链接阶段,你的程序会把一些你从库中调用的函数链接进程序中。库的尺寸现在越来越大,尤其是有的时候,一个库中的函数还有可能调用其它库中的函数,这样你的程序尺寸会更大。关于编译和链接的过程中到底发生了什么,可以参考《程序员的自我修养:链接、装载与库》[18]。市面上C 语言的书铺天盖地,但是讲解C 语言背后故事的书却凤毛麟角,如果你想加深对C 语言的理解并了解一些系统内核部分的知识,这本书绝对不要错过。
好在 C 语言标准库中的函数的数量还不是太多。下面的各个小节分别给予简单的介绍。注意,本书毕竟不是一本参考手册,读者从这本书的厚度上也能猜到这一点,无论是垫桌脚还是当枕头,都太薄。所以对于标准的库函数,我只是给出简单的函数名、常见的功能和使用这些函数的注意事项。本书只是告诉你有这些函数,至于如何具体地使用,你一定要仔细查看函数本身的参考文档,在Windows 下可以使用MSDN,在Linux 下可以使用man 命令,当然,最方便的一种方法就是直接上网Google。
C 语言的数学函数主要包含初等函数,如绝对值函数abs 和fabs,幂函数exp 和pow,对数函数log 和log10,开平方函数sqrt,上下界函数ceil 和floor,以及三角函数sin、cos、tan 和反三角函数asin、acos、atan 等。
下面我主要说说使