extern "C"用于声明还是用于定义
时间: 2023-07-08 11:54:26 浏览: 234
extern声明辨析
`extern "C"`是用于声明一个函数或变量的,它的作用是告诉编译器这个函数或变量按照 C 语言的方式进行链接,而不是 C++ 的方式。在 C++ 中,函数的名称会根据函数的参数类型和个数进行重载,而在 C 语言中,函数的名称不带参数信息,因此使用 `extern "C"` 可以避免函数名重载导致的链接错误。
例如,在 C++ 中,下面两个函数声明会被认为是不同的函数:
```
void foo(int);
void foo(float);
```
而在 C 语言中,这两个函数声明会被认为是相同的函数:
```
void foo(int);
void foo(float); // 会被认为是重复声明
```
因此,如果需要在 C++ 中调用 C 语言编写的函数,需要在函数声明中使用 `extern "C"`,例如:
```
extern "C" void foo(int);
```
这样声明的函数会按照 C 语言的方式进行链接,可以在 C++ 中使用。同时,需要注意的是,`extern "C"`只是声明,不是定义,需要在其他地方进行定义。
阅读全文