在C语言中,extern
关键字用于声明一个变量或函数,表示它在其他文件中定义
以下是使用extern
关键字的一些建议:
使用extern
声明全局变量:
假设你有两个文件:file1.c
和file2.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
使用extern
声明全局变量的最佳实践:
为了避免在多个文件中使用同一个全局变量导致的潜在问题,通常将全局变量放在一个头文件中,并在需要使用它的文件中包含该头文件。
假设你有三个文件:main.c
,file1.c
和file1.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
时,请确保正确地声明和定义变量及函数,以避免潜在的错误和问题。