gpt4 book ai didi

c++ - C 中的 extern 关键字可实现更多功能

转载 作者:行者123 更新时间:2023-11-30 18:22:25 25 4
gpt4 key购买 nike

我想在 C 和 C++ 中都包含一个头文件,并且我有一个在 C 代码中定义的函数以及在外部库中定义的几个函数。

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

void func0();

#if !defined(__cplusplus)
extern {
#endif

void func1();
int func2(int);

} /* extern */

从 C 源文件编译时,此代码会产生编译错误

error C2059: syntax error : '{'

是否可以直接修复语法错误或者我必须使用一些宏?

EXTERNCPP void func0();
EXTERNC void func1();
EXTERNC int func2(int);

编辑 1:我不问关于 Effects of the extern keyword on C functions ,我只是问是否可以以简单的方式修复语法。如果不可能,我仍然可以将 C 部分完全删除

编辑 2:为了澄清我想要得到什么。如果包含标题

来自 C++:

extern "C" void func0(); 
extern "C" void func1();
extern "C" int func2(int);

来自C:

void func0(); 
extern void func1();
extern int func2(int);

最佳答案

extern { 是不需要的。您需要将其删除:-

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

void func0();

#if !defined(__cplusplus)

#endif

void func1();
int func2(int);

#if defined(__cplusplus)
}
#endif

关于c++ - C 中的 extern 关键字可实现更多功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21576899/

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