Xcode 5仅在第一个函数中给出关于strlen()的警告。错误?

时间:2014-06-08 01:22:01

标签: xcode

我偶然遇到了这个。在Xcode 5中(在其他版本中未经测试),如果C文件中的第一个函数包含对strlen()的任何调用,它会向我发出警告Implicitly declaring library function 'strlen' with type 'unsigned long (const char*)'。但是如果我在任何其他功能中使用strlen,它就不会给我警告。所以我被迫在我的一个文件的顶部创建一个一次性函数,因为我害怕它会做什么。有没有错误,或者我是不是以某种方式搞砸了?

这是截图。注意test()中的警告但不是main(): enter image description here

1 个答案:

答案 0 :(得分:8)

您需要添加

 #include <string.h>

到文件的顶部。

没有它,第一次在编译器看到函数的文件中,它将假定它是使用非常旧的C样式参数定义的。关于它将如何工作或将不工作的背景很多,但这可能更适合堆栈溢出。

一般情况下,如果你有一个C函数并且希望看到你需要#include使用它,你可以在终端上做man strlen