两个c文件同时在同一个变量前加extern
时间: 2024-03-31 19:38:08 浏览: 22
在两个不同的 C 文件中同时使用 `extern` 关键字声明同一个变量,可以使得这个变量的存储空间在程序的整个生命周期中只有一份,从而实现变量的共享。
具体来说,当一个变量在一个 C 文件中被定义时,如果你想在另一个 C 文件中使用它,你需要在该文件中使用 `extern` 关键字来声明这个变量,以告诉编译器这个变量已经在别处定义过了,并且不需要再分配新的存储空间。
举个例子,如果你在 `file1.c` 文件中定义了一个全局变量 `int x = 10;`,那么在 `file2.c` 文件中,你可以这样声明这个变量: `extern int x;`。这样就可以在 `file2.c` 中使用这个变量了,而不需要重新定义它。
需要注意的是,`extern` 关键字只是一个声明,它并不会创建变量的实际存储空间,因此你必须在某个地方定义这个变量。否则,在链接时会出现 undefined symbol 错误。
相关问题
Linux如何定义全局变量并在两个c文件中使用
在Linux中,定义全局变量可以通过在头文件中声明变量,然后在一个.c文件中定义变量,另一个.c文件中通过extern关键字声明变量,以便在另一个.c文件中使用该变量。
例如,我们可以在一个名为globals.h的头文件中声明全局变量:
```
#ifndef _GLOBALS_H_
#define _GLOBALS_H_
extern int global_variable;
#endif /* _GLOBALS_H_ */
```
然后在一个名为globals.c的.c文件中定义该变量:
```
#include "globals.h"
int global_variable = 0;
```
最后,在另一个.c文件中,我们可以通过包含头文件并使用extern关键字来使用该变量:
```
#include "globals.h"
void function()
{
extern int global_variable;
global_variable = 123;
}
```
这样,我们就可以在两个不同的.c文件中使用同一个全局变量了。
keil5中 如何在两个.c文件中使用同一个常量
在keil5中,可以使用extern关键字来在两个.c文件中使用同一个常量。具体步骤如下:
1. 在一个.c文件中定义常量,如下所示:
```c
const int MY_CONSTANT = 10;
```
2. 在另一个.c文件中使用该常量,需要在该文件中声明该常量,如下所示:
```c
extern const int MY_CONSTANT;
```
注意,extern关键字用于声明一个变量,表示该变量在其他文件中定义。
3. 在使用该常量的地方,直接使用MY_CONSTANT即可,如下所示:
```c
int main()
{
int result = MY_CONSTANT * 2;
return 0;
}
```
这样就可以在两个.c文件中使用同一个常量了。