在数学中我们用过sin和ln这样的函数,例如sin(π/2)=1,ln1=0等等,在C语言中也可以使用这些函数(ln函数在C标准库中叫做log):
例 3.1. 在C语言中使用数学函数
- #include
- #include
-
- int main(void)
- {
- double pi = 3.1416;
- printf("sin(pi/2)=%f\nln1=%f\n", sin(pi/2), log(1.0));
- return 0;
- }
编译运行这个程序,结果如下:
$ gcc main.c -lm $ ./a.out sin(pi/2)=1.000000 ln1=0.000000
在C语言的术语中,1.0是参数(Argument),log是函数(Function),log(1.0)是函数调用(Function Call)。
函数库:
头文件中声明了我们程序中使用的库函数,根据先声明后使用的原则,要使用
printf函数必须包含stdio.h,要使用数学函数必须包含math.h。
头文件在不同的库中,gcc命令需要为库加编译选项:
使用
math.h中声明的库函数还有一点特殊之处,gcc命令行必须加-lm选项,因为数学函数位于libm.so库文件中(这些库文件通常位于/lib目录下),-lm选项告诉编译器,我们程序中用到的数学函数要到这个库文件里找。本书用到的大部分库函数(例如printf)位于libc.so库文件中,使用libc.so中的库函数在编译时不需要加-lc选项,当然加了也不算错,因为这个选项是gcc的默认选项。