变量:
全局变量,工作域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过extern 全局变量名的声明,就可以使用该全局变量。全局变量前加static修饰,则该变量的工作域是所在的文件,其他的文件即使使用extern声明也不能使用该变量。
局部变量,当程序运行到定义局部变量处时会给局部变量分配栈内存,当程序退出函数体,系统会收回栈内存,局部变量就失效。
在局部变量前加static,构成静态局部变量。静态局部变量保存在全局数据区,而不是保存在栈中,可以一直刷新赋值。静态局部变量一般在声明处初始化,如果没有显示初始化,则自动赋值为0。静态局部变量的生命期为整个程序,但其作用范围为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束。
extern可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。另外,extern也可用来进行链接指定。在使用extern时候要严格对应声明时的格式。
函数:
静态函数:在函数的返回类型前加上static关键字,函数即被定义为静态函数。静态函数与普通函数不同,它只能在声明它的文件当中可见,不能被其它文件使用。
定义静态函数的好处是,由于静态函数不能被其他文件使用,因此其他文件中可以定义同名函数而不会发生冲突。
extern函數:
如果函數的声明中带有关键字extern,仅仅是暗示这个函数可能在别的源文件里定义,一般用在頭文件包含中。
阅读(1046) | 评论(0) | 转发(0) |