Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
为什么在启用 Wall 选项的情况下编译源代码时,调用某些函数会产生警告,例如 warning: incompatible implicit declaration of built-in function 'strcpy' [enabled by default]|"
warning: incompatible implicit declaration of built-in function 'strcpy' [enabled by default]|"
我查看了函数并添加了它的标题,警告就消失了。当(显然)不需要时添加标题的利弊是什么?
没有“利弊”。在使用其中声明的函数之前,您必须始终包含标题。否则,您应该认为这是一个彻头彻尾的错误。C 允许“隐式声明”这一事实是一个历史遗留问题,永远不应该在实际代码中使用。
当您忘记包含标头时,编译器假定函数的返回类型为int,这称为隐式声明。建议不要使用它,因为它容易出错并且自 C99 以来已被删除。
int
因为所有的strcpy,strcat都是内置函数。直接查找文件string.h