c语言 extern
时间: 2023-10-26 22:58:28 浏览: 99
在C语言中,extern关键字用于声明一个全局变量或函数是在其他文件中定义的。使用extern关键字可以告诉编译器,在当前文件中,这个变量或函数是在其他文件中定义的,可以访问其他文件中定义的全局变量或函数。<em>1</em><em>2</em><em>3</em>
#### 引用[.reference_title]
- *1* *2* *3* [C语言学习之extern关键字](https://blog.csdn.net/m0_69909682/article/details/128218337)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item]
[ .reference_list ]
相关问题
C语言 extern
在C语言中,关键字extern用于声明一个全局变量或函数,表示该变量或函数是在其他文件中定义的。它可以用于解决多文件编程时的符号重定义问题。
当我们在一个源文件中使用extern关键字声明一个变量或函数时,它告诉编译器该变量或函数是在其他文件中定义的,编译器会在链接阶段将其与实际定义进行连接。
例如,我们有两个源文件file1.c和file2.c。在file1.c中定义了一个全局变量x,我们希望在file2.c中也能够使用这个变量。我们可以在file2.c中使用extern关键字声明变量x,编译器会在链接阶段将两个文件中的x连接起来。
file1.c:
```c
int x = 10;
```
file2.c:
```c
extern int x;
int main() {
printf("%d\n", x); // 输出10
return 0;
}
```
在上面的例子中,我们在file2.c中使用extern关键字声明了变量x,然后在main函数中可以直接使用x,因为编译器会将其与file1.c中定义的x连接起来。
总之,extern关键字用于声明一个全局变量或函数,并告诉编译器该变量或函数是在其他文件中定义的。这样可以避免多文件编程时的符号重定义问题。
C语言 extern举例
假设我们有两个C语言源文件,分别为"main.c"和"func.c",其中"main.c"想要使用"func.c"中定义的函数foo(),可以通过"extern"关键字来实现:
// func.c
int foo() {
return 42;
}
// main.c
extern int foo(); // 声明foo()函数的外部链接属性
int main() {
int result = foo(); // 调用foo()函数
return 0;
}
在"main.c"中,我们使用"extern"关键字声明了"foo()"函数的外部链接属性,这样编译器就知道在链接阶段需要将"foo()"函数的定义从"func.c"中连接到"main.c"中。然后,在"main()"函数中,我们就可以调用"foo()"函数,而不用担心链接错误的问题。
阅读全文