- 函数从存储的时间角度来说可以分为
- 静态存储:指在程序运行期间由系统分配固定的存储空间的方式。
- 动态存储:在程序运行期间根据需要进行动态的分配存储空间的方式。
auto 变量
- 动态分布存储空间
- 调用函数时系统给他们分配空间,调用结束自动释放
- auto 可以省略,不加static的一般都是auto
#include <stdio.h>
void main()
{
auto int a =5; //=int a
printf("%d",a);
}
static变量
- 静态局部变量
- 编译时赋初值
- 不付初值时,自动赋初值为0/空字符串,对于auto不付初值是一个不确定的值
- 虽然静态局部变量在函数调用结束后仍然存在,但其他函数不能引用它。
redister 变量
- 为了提高CPU的执行效率,将局部变量的值放在CPU中的寄存器中,需要用时直接从寄存器取出参加运算,不必再到内存中去存取。
extern 变量
- 声名外部变量
#include <stdio.h>
void main()
{
extern A,B;
printf("%d%d",A,B);
fun();
}
int A=5,B=6;
void fun()
{
}