当前位置:  开发笔记 > 编程语言 > 正文

extern"C"对C有影响吗?

如何解决《extern"C"对C有影响吗?》经验,为你挑选了2个好方法。

我刚刚得到一些使用extern"C"的C代码来声明这样的外部函数:

extern "C" void func();

这是有效的C吗?我在这一行收到错误,但我不确定是不是因为这个或其他原因.



1> Adam Rosenfi..:

不,它无效C.它只应在C++代码中用于引用C代码中定义的函数.在extern "C"应该以包围ifdef __cplusplus/ #endif块:

// For one function
#ifdef __cplusplus
extern "C"
#endif
void func();

// For more than one function
#ifdef __cplusplus
extern "C"
{
#endif

void func1();
void func2();

#ifdef __cplusplus
}
#endif



2> Jens Luedick..:

这是一种C++表示法,用于告诉编译器/链接器使用C调用标准.

通常该行包含在预处理器语句中.

#ifdef __cplusplus
extern "C" {
#endif

// stuff

#ifdef __cplusplus
}
#endif

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有