c - 如果有的话,隐式函数声明在 c/c++ 中的作用是什么?

标签 c header-files c99 undefined-symbol

在编程时,忘记包含头文件并因此调用未定义的函数是很常见的。根据具有默认选项的 gcc 或 clang,调用未在调用者的命名空间中定义的函数不是编译时错误。而是发出警告,“函数 __ 的隐式声明在 C99 中无效”。为什么将其归类为错误?你们都见过很酷的隐式函数黑客吗?

最佳答案

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

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

关于c - 如果有的话,隐式函数声明在 c/c++ 中的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21569393/

相关文章:

c - 头文件中的全局变量

c - Keil Uvision 5 添加头文件和源文件?

c - "Array index in initialiser exceeds array bounds"

c - 如何从 bash 终端获取输入到我的程序中

c - 递归二分查找

C - container_of 宏

c - 为什么我不能从我的主循环中读取中断标志?

c - 递归二叉树插入

c++ - 为什么要将整个 header 内容放在保护 token 中?

c - 发生错误时,scanf 返回 1 而不是 0