小编Ale*_*der的帖子

重新考虑在C++中包含C头

我刚刚阅读了一个关于SO讨论场景的问题,其中一段代码在C和C++中都有效,但会在每种语言中产生不同的行为.

这引出了一个问题:在C++代码中包含C头时,这可能是一个问题吗?

从这个问题中知道你应该包含这样的C头:

extern "C" {
#include <your_os_or_library_header_in_c.h>
}
Run Code Online (Sandbox Code Playgroud)

但到目前为止我发现的只是extern"C"只能保证关闭名称.

我找不到任何有关它是否将所有语句评估为C的信息,因此eg sizeof('a')10 //* comment */ 2(您可以在内联函数中找到)被解析为C而不是C++.(请注意,依赖于编写C头的人这样的行为显然是一个坏主意,但我从纯粹的学术角度问"如果会怎么样?".)

C++标准是否说包含一段代码extern "C"意味着其中的所有语句都必须解析为C?

c c++ header-files extern

6
推荐指数
1
解决办法
366
查看次数

标签 统计

c ×1

c++ ×1

extern ×1

header-files ×1