linux c 数据存储类型

linux c 数据定义:
linux 中c定义一个数据时,需要同时指定:

 存储属性 和数据类型 及标识符

下文主要阐述c语言中 存储属性。


在linux c中存储属性主要分为:

1 auto 自动属性

自动属性会随着函数的生命周期结束,而结束。
如果我们定义变量时候,没有指定存储类型,那么系统默认为自动属性。

2 static 静态属性

静态变量同自动属性变量最大的区别:
   静态变量不会随着函数的退出,或函数执行完毕而消失。
例:
文件 s.c
static int s1;
int s2;
void function1(void)
{
static int s3;
int s4;
}
针对文件 s.c , s1,s2都是全局变量,但是s2可以在别的文件中通过extern引用,而s1只能在文件s.c内部使用。
s3,s4的区别 s3 s4的作用范围都是函数function1内,但是s4在函数执行完毕后,就会被释放,而s3不会释放,当进程中,再次调用函数的时候,s3会使用上次的值。
 

3 register 寄存器属性

将一些使用频率比较高的变量,采用此存储属性,可以使变量离CPU位置近,达到访问速度快的目的,
常用于频繁修改的全局变量


4 extern 外部属性

如果需要外部文件 (外部.c)文件中的函数引用另外一个文件中的变量,那么就需要在函数名前面加上此存储属性,
因此外部变量,可以定义为全局变量使用,其作用域为整个程序
a.c
#include < b.c>
extern int d;
int main()
{
d=100;
}
//b.c
int d;

相关阅读:
linux c基本语法单位-标识符