【问题标题】:What happens if you nest extern "C"?如果嵌套外部“C”会发生什么?
【发布时间】:2018-01-04 16:45:05
【问题描述】:

看起来嵌套 extern "C" 是合法的。例如:

extern "C" extern "C" void foo();

第二个extern "C" 基本上被忽略了。这是由 C++ 标准保证的吗?在哪里?

【问题讨论】:

    标签: c++ nested extern


    【解决方案1】:

    是的,但它实际上是第一个被忽略的extern "C"。引用标准[dcl.link]:

    联动规范嵌套。当联动规范嵌套时, 最里面的一个决定了语言链接。

    【讨论】:

    • 你打败了我 ;)
    • 对不起,我回答了我自己的问题。 :) 我需要声誉!厌倦了无法投票或发表评论。
    • ROFL!对你有好处!
    • @orochryden 在这种情况下,您可以将答案与问题同时发布。问题填写页面底部应该有一个额外的框,用于回答。
    • @Ashe the human 如果“信息”是指我发布的答案,那么也许我可以解释这个问题的动机:我使用预处理器宏的方式导致了嵌套的外部“C”,我很好奇这是否真的合法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-11
    • 2021-08-22
    • 2017-09-10
    • 1970-01-01
    • 2020-03-31
    • 2013-10-31
    • 1970-01-01
    相关资源
    最近更新 更多