【发布时间】:2011-01-11 05:07:17
【问题描述】:
我最近发现了一些代码,其中在源文件中添加了 extern "C" 也用于函数。它们也被添加到声明它们的头文件中。
我假设在头文件中添加 'extern "C" 就足够了。
应该在哪里添加外部“C”块?
更新: 假设我正在使用 CPP 编译器编译我的 C 代码,并为头文件中的所有函数添加了 extern "C" 保护(即我的所有函数在头文件中都有它们的原型),但在源文件中我没有添加相同的。这会导致问题吗?
【问题讨论】:
-
肯定在标题中。我曾经签订过一份合同,他们的编码标准要求在源代码中而不是在标题中包含守卫。神圣的样板,蝙蝠侠!
-
@gbacon:这是 Lakos 关于大规模 C++ 编程的书中的建议。这个想法是包含警卫需要阅读所有标题。当然,现在 gcc 会识别包含守卫,而不是读取整个 .h 文件。
-
你所说的“C”警卫是什么意思?包括守卫或外部“C”块?
-
它是外部“C”块。