1. 自动存储类(auto): 这是默认的存储类,当在函数或代码块中声明变量时,它们自动具有auto存储类。auto关键字通常可以省略。
#include <stdio.h>
int main() {
auto int num; // auto可以省略,int num;
num = 5;
printf("Auto variable: %d\n", num);
return 0;
}
2. 寄存器存储类(register): 这个关键字用于声明存储在寄存器中的变量,而不是存储在内存中。这仅仅是一个建议,编译器可以忽略它。
#include <stdio.h>
int main() {
register int counter;
for (counter = 0; counter < 5; ++counter) {
printf("Counter: %d\n", counter);
}
return 0;
}
3. 静态存储类(static): 静态存储类用于指定变量在程序执行期间保持静态存储,不会被销毁。它可以用于局部变量、全局变量和函数。
#include <stdio.h>
void exampleFunction() {
static int count = 0; // 静态局部变量
count++;
printf("Function call count: %d\n", count);
}
int main() {
int i;
for (i = 0; i < 3; i++) {
exampleFunction();
}
return 0;
}
4. 外部存储类(extern): extern关键字用于声明一个全局变量,该变量可以在其他文件中定义。它通常用于多文件程序。
// 文件1: file1.c
#include <stdio.h>
int globalVar = 10; // 全局变量
// 文件2: file2.c
#include <stdio.h>
extern int globalVar; // 声明全局变量,表示该变量在其他文件中定义
int main() {
printf("Global variable: %d\n", globalVar);
return 0;
}
这些存储类可以根据需要在程序中灵活使用,以满足变量的不同需求。
转载请注明出处:http://www.pingtaimeng.com/article/detail/13516/C 语言