extern c 里面放些什么
时间: 2024-04-23 20:27:30 浏览: 9
在C语言中,`extern "C"`用于在C++代码中声明C语言函数和变量的链接规范。当你在C++代码中需要调用C语言编写的函数或使用C语言的全局变量时,可以使用`extern "C"`来确保C++编译器按照C语言的链接规范进行处理。
具体来说,你可以将C语言的函数声明包裹在`extern "C"`块中,如下所示:
```cpp
#ifdef __cplusplus
extern "C" {
#endif
// C语言函数声明
#ifdef __cplusplus
}
#endif
```
这样,C++编译器就会按照C语言的链接规范来处理这些函数,确保正确的名称修饰和函数调用约定。
在`extern "C"`块中,你可以放置C语言的函数声明、全局变量声明等。需要注意的是,C++编译器在处理`extern "C"`块中的代码时,会禁用C++特有的名称修饰和其他特性,以保持与C语言的兼容性。
相关问题
为什么.h文件里面需要加上extern "C"
extern "C" 是一种C++的语法,其作用是告诉编译器使用C语言的命名规则和链接规则,使得C++与C语言可以进行混合编程。在编写C++代码时,如果需要调用C语言编写的函数或者调用C语言编写的库,就需要使用extern "C"来指定其链接规则和命名规则,否则会出现链接错误。因此,在.h文件中加上extern "C"可以避免链接错误,使得C++与C语言的代码可以互相调用。
为什么C语言中,有些.c文件里面也有前面加了extern的变量
在C语言中,使用extern关键字可以声明一个变量,表示该变量是在其他地方定义的。当我们在一个.c文件中使用extern声明一个变量时,它告诉编译器该变量已经在其他地方定义,并且可以在当前文件中使用。
这种情况通常出现在多个.c文件共享同一个全局变量的情况下。通过在某个.c文件中使用extern声明该变量,其他文件就可以访问和使用该变量,而无需重新定义它。
举个例子,假设我们有两个.c文件:file1.c和file2.c。在file1.c中定义了一个全局变量x,并且在file2.c中也需要使用这个变量。为了让file2.c知道x已经在file1.c中定义了,我们可以在file2.c中使用extern关键字声明该变量,而无需重新定义它。
这样做的好处是可以提高代码的可维护性和可扩展性,因为不同的文件可以共享相同的全局变量,方便数据的共享和传递。但需要注意的是,extern关键字只是声明变量,并不分配内存空间,真正的定义和分配内存发生在其他文件中。