extern “C” 注意事项

在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);

如果觉得有帮助,可以扫描右边的微信打赏码支持一下.

Leave a Reply

Your email address will not be published. Required fields are marked *