extern "c"的作用
时间: 2023-07-19 10:52:31 浏览: 58
`extern "C"`是C++语言提供的一种机制,用于指示编译器按照C语言的规则进行函数和变量的链接。这个机制的作用是解决C++中由于函数重载、模板等特性导致的函数名重载、符号重载的问题,使得C++代码可以和C代码进行混合编译链接。
当我们在C++中定义一个函数时,如果我们不做任何特殊处理,编译器会自动对函数名进行修饰,这个修饰过的函数名将包含函数的参数类型、返回值类型等信息。而在C语言中,函数名不会被修饰,因此C++编译后的函数名与C语言编译后的函数名不一样,导致C++代码无法直接和C代码进行链接。使用`extern "C"`可以告诉编译器按照C语言的方式进行函数名的链接,从而使得C++代码可以和C代码进行混合编译链接。
相关问题
extern c作用
extern "C"的作用是用于实现C和C++之间的相互调用问题。C和C++对于函数名的处理方式是不一样的,所以当我们希望调用其他用C编写的函数时,需要告诉编译器使用不同的要求。通过在C++代码中使用extern "C"来声明函数,可以使编译器按照C的规则来处理函数名和参数排列的顺序,从而实现C和C++之间的兼容调用。
需要注意的是,extern "C"不能在函数内部使用,而是用于函数的声明。如果一个函数有多个声明,可以都加上extern "C",或者只在第一次声明中出现,后面的声明会接受第一个链接指示符的规则。
所以当我们需要在C++代码中调用C函数时,可以使用extern "C"来实现对C函数的调用。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [【004 关键字】extern “C“的作用是什么?](https://blog.csdn.net/qq_41709234/article/details/123082378)[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_2"}}] [.reference_item style="max-width: 50%"]
- *2* [extern关键字作用.docx](https://download.csdn.net/download/Stephen___Qin/87567249)[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_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
c语言extern作用
C语言中的extern关键字用于声明一个全局变量或者函数,该变量或函数在其他文件中定义。它的作用是告诉编译器,该变量或函数在其他文件中定义,但是可以在当前文件中使用。
当我们在一个C文件中使用extern关键字声明一个变量时,编译器会在链接阶段去寻找该变量的实际定义。如果找到了,就将其链接到当前文件中;如果没有找到,编译器会报链接错误。
例如,我们可以在一个C文件中声明一个全局变量:
extern int globalVariable;
然后在另一个C文件中定义该变量:
int globalVariable = 10;
通过使用extern关键字,我们可以将全局变量globalVariable的定义从一个文件引入到另一个文件中,实现了跨文件的变量共享。
同样地,我们也可以使用extern关键字声明一个函数:
extern void functionName();
然后在另一个C文件中定义该函数:
void functionName() {
// 函数实现
}
这样就可以在当前文件中使用extern关键字声明的函数,而函数的具体实现在其他文件中定义。
总结来说,extern关键字用于声明一个全局变量或函数,告诉编译器该变量或函数的具体定义在其他文件中。这样可以实现跨文件的变量共享和函数调用。