C中static的用法

static 关键字在C中有两种用法,而且这两种用法没有任何关联、完全的独立。
第一种用法:修饰局部变量,形成静态局部变量。要搞清楚静态局部变量和非静态局部变量的区别。本质的区别是存储类不同(存储类不同就衍生处很多的不同)。非静态局部变量分配在栈上,而静态局部变量分配在数据段/bss段中。
1、静态局部变量在存储类方面和全局变量一样。
2、静态局部变量在生命周期和全局变量也一样。
3、静态局部变量和全局变量的区别是:作用域、链接属性。静态局部变量作用域是代码块作用域(和普通的局部变量一样)、链接属性是无连接;全局变量的作用域是文件作用域(和函数一样)、链接属性是外链接。
第二种用法:修饰全局变量和函数
1、普通的(非静态函数),全局变量,默认的链接属性是外部的。
2、static(静态)的函数、全局变量、链接属性是内部链接的。

你可能感兴趣的:(C中static的小)