编程时,通常会忘记包含标题,从而调用未定义的函数。根据gcc或具有默认选项的clang,调用未在调用者命名空间中定义的函数不是编译时错误。而是发出警告,“C99中函数的隐式声明__无效”。为什么要把它归类为错误?你有没有看到任何很酷的隐含功能黑客?
答案 0 :(得分:1)
隐式函数声明是一个在C的旧版本中有效的功能。编译器没有理由拒绝这样的有效代码,但它足以发出警告,因为它是自C99以来不支持的功能。 / p>
在这种情况下抛出错误是不正确的,因为编译器必须考虑许多遗留代码。这并不意味着隐式函数声明有任何酷hack 。