0

为什么在启用 Wall 选项的情况下编译源代码时,调用某些函数会产生警告,例如 warning: incompatible implicit declaration of built-in function 'strcpy' [enabled by default]|"

我查看了函数并添加了它的标题,警告就消失了。当(显然)不需要时添加标题的利弊是什么?

4

3 回答 3

8

没有“利弊”。在使用其中声明的函数之前,您必须始终包含标题。否则,您应该认为这是一个彻头彻尾的错误。C 允许“隐式声明”这一事实是一个历史遗留问题,永远不应该在实际代码中使用。

于 2013-09-30T14:04:04.843 回答
3

当您忘记包含标头时,编译器假定函数的返回类型为int,这称为隐式声明。建议不要使用它,因为它容易出错并且自 C99 以来已被删除。

于 2013-09-30T14:06:03.823 回答
0

因为所有的strcpy,strcat都是内置函数。直接查找文件string.h

于 2014-01-31T04:31:50.500 回答