extern关键字
时间: 2023-07-26 16:07:54 浏览: 78
extern是C/C++中的一个关键字,它用于声明变量或函数是在其他文件中定义的。
当我们在一个文件中使用一个在其他文件中定义的全局变量或函数时,需要在使用它的文件中使用extern关键字进行声明。这样编译器就知道该变量或函数是在其他文件中定义的,而不是在当前文件中定义的。
例如,在文件A中定义了一个全局变量x,并在文件B中想要使用它,那么在文件B中需要使用extern关键字进行声明:
```
// 文件A
int x = 10;
// 文件B
extern int x;
```
这样,编译器就知道x是在其他文件中定义的,并且可以正确地使用它。同样的,当我们想要在一个文件中使用其他文件中定义的函数时,也需要使用extern关键字进行声明。
相关问题
extern 关键字
引用中提到了extern关键字在C语言中的使用。extern关键字在变量名时,用于声明全局变量并指示其在外部定义。如果变量没有extern修饰且没有显式的初始化,就会成为变量的定义,因此此时必须加上extern关键字。
而在函数中,extern关键字同样可以用于函数的声明,表示该函数是在外部定义的。在头文件中声明函数时,加与不加extern都是一样的意思,都是声明函数而不是定义函数。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [extern关键字](https://blog.csdn.net/apple_51801179/article/details/125758014)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [extern 关键字说明](https://blog.csdn.net/lqy971966/article/details/118017369)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
C# Extern关键字
Extern关键字在C#中用于声明外部方法。它指示编译器该方法的实现不在当前C#项目中,而是在外部的非托管代码中。
使用Extern关键字可以将C#代码与其他编程语言(如C++)编写的库进行交互。通过声明外部方法,我们可以在C#中调用这些非托管代码中的函数。
外部方法的声明通常位于类或结构体的内部,并且使用extern关键字进行修饰。例如:
```csharp
class MyClass
{
[DllImport("user32.dll")]
public static extern int MessageBox(IntPtr hWnd, string text, string caption, uint type);
// 其他方法和成员...
}
```
在上面的示例中,使用extern关键字声明了一个名为MessageBox的外部方法。该方法在user32.dll库中定义,并且可以通过调用该方法来显示一个消息框。
请注意,为了使用extern关键字声明外部方法,我们需要在代码中引入System.Runtime.InteropServices命名空间,使用DllImport特性指定外部库的名称。
需要注意的是,extern关键字只能用于声明方法,而不能用于字段、属性或事件。此外,由于外部方法的实现不在C#项目中,因此需要确保所引用的外部库存在并可用于程序运行。