前言
这里的类型指的是数据类型和自定义数据类型
自定义数据类型 | struct union enum typedef |
数据类型 | int long short unsigned signed float double void |
这些数据类型可以只定义数据资源的大小,但是位置限定需要靠类型修饰符来限定。
auto
平时我们定义
int a;
实际上,编译器会默认自动在前面补全为
auto int a;
//如果定义在{}里面为栈空间
{
auto int a;
}
这会告诉内存,a这个变量在分配的内存区域可读可写
register
限制变量定义在cpu寄存器上的修饰符,可以定义一些快速访问的变量,编译器会尽量安排cpu的寄存器存放a,如果寄存器不足时,还是放在存储器中。
注意:&符号对register类型的是不起作用。
register int a;
static
主要用来修饰三种数据
1.函数内部变量
2.函数外部的变量
3. 函数的修饰符
static 详解
extern
extern关键字用于声明一个变量或函数是在其他源文件中定义的。它的作用是告诉编译器,在当前源文件中,这个变量或函数的定义并不存在,而是在其他地方存在,并且可以被访问和使用。