C 语言编程基础三:函数,重点库函数

函数由类型说明符、函数名、参数表、参数说明段和函数体 5 个部分组成。

函数的一般形式如下:
C 语言编程基础三:函数,重点库函数

函数的类型说明
函数的类型说明符可以是任何数据类型,包括空值型 void,即不使用 return 语句返回任何数据。默认情况下,函数被自动说明为整型。函数必须在第一次调用前定义,这样编译器才能找到该函数。或者将函数的类型说明放在首次调用之前,前置函数类型说明被称为函数原型。
C 语言编程基础三:函数,重点库函数

C 语言编程基础三:函数,重点库函数

返回语句
函数的返回语句 return 有两个作用:其一,结束当前函数,调用者获得程序控制权;其二,将计算结果传递给调用者。函数的结束有两种情况,一是函数体内所有的代码执行完毕,二是 return 语句被执行

动态存储变量
从变量的生存周期来分类,可将变量分为动态存储变量和静态存储变量。动态存储变量在函数调用时放入内存,函数调用后从内存中删除。声明动态存储变量的关键字为 auto,与声明局部变量相同,它的一般形式是:
auto 数据类型 变量名;
auto 关键字作为声明语句的默认值,所以通常可省略。由于函数中的动态变量会在函数退出时删除,所以两次调用函数时,函数不会保存动态变量的数据。
 

静态存储变量
在编译时分配存储空间的变量称为静态存储变量。在函数退出时,静态存储变量依然被保留在内存中,再次执行同一函数会得到与上次退出时相同的数值。声明静态存储变量的关键字为 static。声明的一般形式为:static 数据类型 变量名;
C 语言编程基础三:函数,重点库函数

第一次调用 func()函数时,声明了静态存储变量 x,并为变量 x 赋初值 100,然后输出变量 x 的值,将变量 x 的值加上 100。 func()函数退出后变量 x 仍然存在于内存中,所以第二次调用 func()函数时,声明变量 x 并赋初值的语句不会被再次执行,因而第二次输出变量的值为 200。


函数的调用与参数
赋值调用与引用调用
C 语言编程基础三:函数,重点库函数

Linux系统常用的C语言函数库
C 语言编程基础三:函数,重点库函数

Linux 系统一般将函数库放置在“ /usr/include”路径中, GCC 编译器在编译时会自动搜索这个路径。在位于默认搜索路径之外的函数库,可在环境变量 LD_LIBRARY_PATH中指明库的搜索路径,或者在“ /etc/ld.so.conf”文件中添加库的搜索路径。另外,还可以直接将库文件全部复制到程序开发目录中,或者在编译时指定函数库路径。
 

pkg-config 程序为配置函数库的路径提供了方便,它用于在编译时指定函数库的路径。
首先需要安装该软件,安装命令如下:
apt-get install pkg-config
pkg-config 可查看已安装的函数库和函数库的版本信息,命令为:
pkg-config --list-all

 

main()函数的参数
main()函数有两个参数,它的形式是:
main(int argc, char *argv[])
argc 的数据类型为整型, argv 的数据类型为字符型指针数组。有些程序在终端运行时,输入完程序文件名后可加上一些额外的运行参数, main()函数的参数即是用来向程序传递这些运行参数的入口。 argc 参数用于记录运行参数的个数, argv 参数用于保存运行参数。所输入的程序名也是运行参数,所以不输入其他运行参数的情况下,也会被捕获到一个运行参数。