【问题标题】:What Is The Role of Implicit Function Declaration in c/c++, if Any?c/c++ 中隐式函数声明的作用是什么?
【发布时间】:2014-03-01 10:05:12
【问题描述】:

在编程时,通常会忘记包含标头,从而调用未定义的函数。根据 gcc 或默认选项的 clang,调用未在调用者的命名空间中定义的函数不是编译时错误。而是发出警告,“函数 __ 的隐式声明在 C99 中无效”。为什么将其归类为除错误之外的任何内容?大家有没有见过很酷的隐式函数 hack?

【问题讨论】:

标签: c header-files c99 undefined-symbol


【解决方案1】:

隐式函数声明是在旧版 C 中有效的功能。编译器没有理由拒绝此类有效代码,但它足以发出警告,因为它是自 C99 以来不受支持的功能。

在这种情况下抛出错误是不正确的,因为编译器必须考虑许多遗留代码。这并不意味着隐式函数声明有任何很酷的技巧

【讨论】:

    猜你喜欢
    • 2012-02-29
    • 2016-08-10
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    相关资源
    最近更新 更多