c语言中extern的使用

    科技2024-04-08  90

    文章目录

    extern的使用1. 作用一:防止编译器混淆同文件中的声明与定义2. 作用二:防止编译器混淆不同文件中声明与定义

    extern的使用

    1. 作用一:防止编译器混淆同文件中的声明与定义

    在使用外部链接和内部链接的静态变量时,为了防止同名变量的覆盖(防止编译器混淆声明与定义),我们按声明的位置把变量分为:

    外部变量(external variable):,把变量的定义性声明放在了所有函数外面的变量内部变量:自动变量,寄存器变量,静态变量 #include<stdio.h> int num = 1; // 外部链接的静态变量 static char ch = 'a'; // 内部链接的静态变量 int main(){ extern int num; // 该语句为声明而非定义(再次声明了num外部链接的静态变量) extern char ch; /* int num; 该语句为定义,而非声明(定义了一个同名为num的局部变量) */ /* char ch; 该语句为定义,而非声明(定义了一个同名为ch的局部变量) */ return 0; }

    2. 作用二:防止编译器混淆不同文件中声明与定义

    #incldue<stdio.h> int num1 = 1; // 此处定义了该文件中的一个外部链接的静态变量num1 extern int num2; // 此处是声明了一其他文件中的一个外部链接的静态变量num2 int main(){ return 0; }

    总结: 函数内使用extern,那么“外部”是相对于函数的,也就是指该文件的函数外 函数外使用extern,那么“外部”是相对于文件的,也就是指该文件外

    Processed: 0.023, SQL: 9