extern使用方法
时间: 2023-11-21 19:54:37 浏览: 46
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关键字声明变量或函数时,不会为其分配内存空间。因此,在使用变量或函数之前,需要确保其在其他文件中已经被定义了。
Extern的使用方法
"extern"是一个关键字,用于在C/C++程序中声明外部变量或函数,它的作用是告诉编译器该变量或函数在其他文件中定义,而不是在当前文件中定义。
在C程序中,"extern"通常用于声明全局变量或函数,以便在其他文件中使用它们,而不需要重新定义。在C++程序中,由于C++支持函数重载,因此"extern"也可以用于声明同名但参数列表不同的函数。
下面是"extern"关键字的一些使用方法:
1. 声明全局变量
```c
// file1.c
int global_var; // 定义全局变量
// file2.c
extern int global_var; // 声明全局变量
```
2. 声明全局函数
```c
// file1.c
int add(int a, int b) { // 定义全局函数
return a + b;
}
// file2.c
extern int add(int a, int b); // 声明全局函数
```
3. 在头文件中声明全局变量或函数
```c
// file.h
extern int global_var; // 声明全局变量
extern int add(int a, int b); // 声明全局函数
// file.c
#include "file.h"
int global_var; // 定义全局变量
int add(int a, int b) { // 定义全局函数
return a + b;
}
```
4. 声明外部链接函数
```c
// file1.c
extern "C" {
void func1(void) { ... } // 定义外部链接函数
}
// file2.cpp
extern "C" {
void func1(void); // 声明外部链接函数
}
```
总之,"extern"关键字用于在C/C++程序中声明外部变量或函数,以便在其他文件中使用它们。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)