在C语言中,存储类(Storage Class)用于定义变量的作用域、生命周期和存储方式。C语言中有四种主要的存储类:

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.zyzy.cn/article/detail/13516/C 语言