gpt4 book ai didi

c++ - __cplusplus 宏告诉 g++ C 头文件声明不正常工作

转载 作者:太空狗 更新时间:2023-10-29 19:59:48 30 4
gpt4 key购买 nike

我混合了 C C++ 代码。全部用g++编译。只要有 C 头文件,我就会在其中包含头文件的内容

#if defined(__cplusplus)
extern "C" {
#endif

#if defined(__cplusplus)
extern "C" {
#endif

但是在一个 C 头文件中,我得到了 g++ 编译错误,我不小心使用了一个参数名称作为 template ,这显然是不正确的,并且与 c++ 关键字 template 冲突。

我知道我可以去更改这个参数名称,但我在想为什么这个 extern "C" 声明不起作用,为什么头文件被视为 C++ 代码而不是我的 C旨在。

g++ 版本 4.1.1 Linux Red Hat Enterprise。

最佳答案

extern "C" 仅告诉编译器(实际上是链接器) C++ 名称修改不适用于在该范围内声明的函数。它与语法或关键字本身无关。

最好的解决方案是重命名冲突的符号。

关于c++ - __cplusplus 宏告诉 g++ C 头文件声明不正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10994882/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com