C++ 链接到C函数

图片描述

这个表述的意思我看懂了,代码我没看懂,预处理链接了C语言,后面引入了一个c函数。但是这段代码表明的是什么意思????

阅读 1.8k
1 个回答

当用 C++ 编译时,__cplusplus 被定义,代码变为

extern "C"
int strcmp(const char*, const char*);

(C++ 里必须提供 extern "C" 以正确链接 C 函数)

当用 C 编译时,__cplusplus 没有定义,代码变为

int strcmp(const char*, const char*);

(C 并不支持 extern "C" ,如果有 extern "C" 会出错)

这样,这段代码即可以作为 C 编译,又可以作为 C++ 编译。

这种代码一般出现在头文件里,以便这个头文件即可以被 C 文件包含,也可以被 C++ 文件包含。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题