隐含函数声明在c / c ++中的作用是什么?

时间:2014-02-05 05:33:48

标签: c header-files c99 undefined-symbol

编程时,通常会忘记包含标题,从而调用未定义的函数。根据gcc或具有默认选项的clang,调用未在调用者命名空间中定义的函数不是编译时错误。而是发出警告,“C99中函数的隐式声明__无效”。为什么要把它归类为错误?你有没有看到任何很酷的隐含功能黑客?

1 个答案:

答案 0 :(得分:1)

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

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