一.函数的声明与定义
编译器,从第一行往下扫,因此,需在开头加上函数,而函数的定义是种特殊的声明。
1.单个文件和多个文件
企业在写代码时,分模块,可提高效率。
一般情况下,函数的声明和定义分别放在(.h)和(.c)。
我们把add()写在add.c这个源文件,将add函数的声明放在add.h的头文件中,再在函数(3).c文件中包含也可以使用。
2.static和exterm
static和exterm为c语言的关键字
static是静态的,可用来:
·修饰局部变量
·修饰全局变量
`修饰函数
exterm是用来声明外部符号的。
首先,看static修饰局部变量:
而static修饰全局变量,那么这个变量不能改变。
static修饰函数,那么这个函数在其他文件就变成不可见,但可以通过声明使用。
二.作用域和生命周期与变量储存位置
变量的生命周期是指,相对于程序运行的进程生命周期,变量存在的时间段。变量的生命周期由变量的存储类型(位置)决定。因此static的第1种含义也可以理解为,static定义了变量的存储类型(位置)。
C语言中,变量存储位置分为栈、全局静态区、堆。栈用来做函数调用,参数传递等,在程序的运行过程中是操作最频繁的数据区。全局静态区,是变量一直存在于内存中,在程序整个运行过程中不会被销毁。堆,是由操作系统维护的大空间内存伸缩区,进程可以主动向操作系统申请使用堆的存储,在程序运行过程中动态申请。