在C/C++的头文件中, 经常看到 extern "C"
的修饰, 究竟有什么作用呢? 那就要从C与C++的符号链接说起. 因为C++支持函数重载, 可链接文件的函数签名必定带有参数和返回值等类型信息, 而C的没有. 所以需要某种方法告诉编译器, 这个可链接文件是C还是C++的. 因此, extern "C"
就诞生了. extern "C"
的使用方法:
- C++调用C函数:
// max.h
extern int max(int, int);
// max.c
int max(int a, int b) {...}
// main.cpp
extern "C" {
#include "max.h"
}
- C调用C++函数:
// max.h
extern "C" {
int max(int, int);
}
// max.cpp
int max(int a, int b) {...}
// main.c
extern int max(int, int);
如果觉得有帮助,可以扫描右边的微信打赏码支持一下.