extern用法
时间: 2023-08-21 13:10:09 浏览: 43
`extern`是一种关键字,它用于在一个源文件中声明一个已经在另一个源文件中定义的全局变量或函数。
当我们在一个源文件中使用一个全局变量或者函数时,编译器需要知道它的类型和名称。如果这个全局变量或者函数在当前源文件中定义,那么编译器可以通过已经编译的代码找到它。但是如果这个全局变量或者函数在另一个源文件中定义,那么编译器就需要知道它的类型和名称,以便在连接时能够正确地将它们链接起来。
这时,我们就可以在当前源文件中使用`extern`关键字来声明这个全局变量或者函数。例如:
```c
// file1.c
int global_var = 10;
// file2.c
extern int global_var;
int main() {
printf("%d\n", global_var); // 输出:10
return 0;
}
```
在这个例子中,`file2.c`中使用了`extern`来声明在`file1.c`中定义的全局变量`global_var`,以便在`main`函数中使用它。
需要注意的是,使用`extern`声明的变量或者函数并不会分配内存空间,它只是告诉编译器这个变量或者函数已经在别的地方定义了。因此,如果我们只是在一个源文件中使用这个变量或者函数,而没有在其他地方定义它,那么编译器在链接时就会报错。
相关问题
extern使用方法
extern是一种C#中的关键字,用于声明在当前文件或程序集之外定义的函数或变量。使用extern关键字可以在C#中调用C/C++等其他语言编写的函数或变量。具体使用方法如下:
```csharp
// 声明一个外部函数
[DllImport("user32.dll")]
public static extern int MessageBox(IntPtr hWnd, string text, string caption, uint type);
// 声明一个外部变量
[DllImport("user32.dll")]
public static extern int GetSystemMetrics(int nIndex);
```
在上述代码中,使用DllImport属性指定了外部函数或变量所在的动态链接库的名称,然后使用extern关键字声明了该函数或变量。在程序中就可以直接调用这些外部函数或变量了。
extern 使用方法
在C或C++程序中,extern关键字用于声明一个变量或函数是在其他文件中定义的。通过使用extern关键字,可以在当前文件中引用其他文件中定义的变量或函数,从而避免了重复定义的问题。
具体来说,extern关键字可以用于以下两种情况:
1. 声明全局变量:在文件中使用extern关键字声明全局变量,表示该变量是在其他文件中定义的。例如:
```
extern int g_var; // 声明全局变量g_var
```
在其他文件中定义g_var变量,例如:
```
int g_var = 10; // 定义全局变量g_var
```
然后就可以在当前文件中使用g_var变量,例如:
```
printf("%d\n", g_var); // 输出10
```
2. 声明外部函数:在文件中使用extern关键字声明外部函数,表示该函数是在其他文件中定义的。例如:
```
extern void func(); // 声明外部函数func
```
在其他文件中定义func函数,例如:
```
void func() {
// 函数实现
}
```
然后就可以在当前文件中调用func函数,例如:
```
func(); // 调用func函数
```
需要注意的是,当使用extern关键字声明变量或函数时,不会为其分配内存空间。因此,在使用变量或函数之前,需要确保其在其他文件中已经被定义了。