如何正确使用C语言的extern关键字

avatar
作者
猴君
阅读量:0

在C语言中,extern关键字用于声明一个变量或函数,表示它在其他文件中定义

以下是使用extern关键字的一些建议:

  1. 使用extern声明全局变量:

    假设你有两个文件:file1.cfile2.c。在file1.c中定义一个全局变量,并在file2.c中使用它。

    file1.c:

    #include<stdio.h>  int global_var = 42;  void print_global_var() {     printf("Global variable: %d\n", global_var); } 

    file2.c:

    #include<stdio.h>  // 使用extern声明在file1.c中定义的全局变量 extern int global_var;  // 使用extern声明在file1.c中定义的函数 extern void print_global_var();  int main() {     printf("Global variable in file2.c: %d\n", global_var);     print_global_var();     return 0; } 

    编译并运行这两个文件:

    gcc file1.c file2.c -o output ./output 

    输出结果:

    Global variable in file2.c: 42 Global variable: 42 
  2. 使用extern声明全局变量的最佳实践:

    为了避免在多个文件中使用同一个全局变量导致的潜在问题,通常将全局变量放在一个头文件中,并在需要使用它的文件中包含该头文件。

    假设你有三个文件:main.cfile1.cfile1.h

    file1.h:

    #ifndef FILE1_H #define FILE1_H  extern int global_var;  void print_global_var();  #endif // FILE1_H 

    file1.c:

    #include "file1.h" #include<stdio.h>  int global_var = 42;  void print_global_var() {     printf("Global variable: %d\n", global_var); } 

    main.c:

    #include<stdio.h> #include "file1.h"  int main() {     printf("Global variable in main.c: %d\n", global_var);     print_global_var();     return 0; } 

    编译并运行这些文件:

    gcc main.c file1.c -o output ./output 

    输出结果:

    Global variable in main.c: 42 Global variable: 42 

总之,extern关键字用于在不同的文件之间共享全局变量和函数。在使用extern时,请确保正确地声明和定义变量及函数,以避免潜在的错误和问题。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!