警告:printf内置函数的隐式声明不兼容[默认启用],与此不兼容。

50

我正在使用以下的C代码:

#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>

int main()
{
    int file=0;
    if((file=open("testfile.txt",O_RDONLY)) < -1)
            return 1;
    char buffer[19];
    if(read(file,buffer,19) != 19)  return 1;
    printf("%s\n",buffer);

    if(lseek(file,10,SEEK_SET) < 0) return 1;

    if(read(file,buffer,19) != 19)  return 1;
    printf("%s\n",buffer);
    return 0;
}

编译后会产生一个警告:

warning: incompatible implicit declaration of built-in 
function ‘printf’ [enabled by default]

这是什么意思,我该如何缓解C编译器不发出警告?


31
这是C语言中的头文件,用于引入标准输入输出库。 - Yu Hao
1个回答

104

您需要在文件顶部添加#include <stdio.h>


5
@rkioji 因为编译器会猜测函数的定义,并且它对于 stdio.h 中存在的函数有很好的猜测。 - Rahul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接