c - 函数 swab 的隐式声明

标签 c gcc warnings unistd.h

编辑:第一段中的警告是由于我从编译器读取了旧日志(在包含 unistd.h 之前,很抱歉造成混淆,第二个问题仍然存在) 我有一段代码使用了 c 函数 unlink(在 unistd.h 中声明)。使用 gcc -Wall 编译后,我收到警告:解决这个问题。我目前的解决方案是简单地将行 extern int unlink(const char *path); 添加到代码中,但这看起来有点傻,因为我还包括了 unistd.h

我曾经收到过有关使用函数 swab(也在 unistd.h 中声明)的警告,但在检查 unistd.h 后设法通过添加行来解决此问题

#ifndef __USE_XOPEN
#define __USE_XOPEN 
#endif

不确定这样做是否正确,如有任何见解,我们也将不胜感激。

最佳答案

您很可能有打字错误或一些简单的错误.....试试这个。

#include <unistd.h>

int
main()
{
    int r;  

    r = unlink("foo");

    return(r);
}

编译它

gcc -Wall foo.c

以上应该是干净的编译。您可以预处理并执行 grep 以验证取消链接声明已被拉入。

sys> gcc -E foo.c | grep unlink
int unlink(const char *);
 r = unlink("foo");

关于c - 函数 swab 的隐式声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20006750/

相关文章:

c++ - 使用GCC 4.8 : array used as initializer构建错误

Java - 忽略目录/包级别的警告

c - 无法计算Linux内核执行C语言编写的hello world程序所花费的时间

c - Sqlite源代码阅读。 F17025、U17032 等 id 有何用途?

c++ - GCC SSE 手写与生成

c - 将 C 解析为 Ocaml

java - 编译器警告 : local variable is redundant

java - 构建maven时警告

python - Windows 下的 Gcovr 错误

c - c 中 msgrcv 的参数无效