auto
关键字auto,可以省略,动态分配置内存,
函数调用时,给局部变量分配内存,调用结束释放该内存,这种局部变量称为自动变量
int fn(int a){
auto int b =3;//定义b为自动变量
}
static
静态变量
#include <stdio.h> void main(){ int fn(int a); int a =5; printf("a+b=%d\n",fn(a));//a+b=9 printf("a+b=%d\n",fn(a));//a+b=10 printf("%d\n",b);// error: ‘b’ undeclared (first use in this function) } int fn(int a){ static int b=3 ; b++; return a+b; }
register
寄存器变量
#include <stdio.h>
void main(){
int fn(int a);
int a =5;
printf("a+b=%d\n",fn(a));
}
int fn(int a){
register int b=3 ;
b++;
return a+b;
}