【问题标题】:warning: incompatible implicit declaration of built-in function ‘printf’ [enabled by default]警告:内置函数'printf'的不兼容隐式声明[默认启用]
【发布时间】:2013-12-01 05:00:18
【问题描述】:

我正在使用以下 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 编译器不要发出警告?

【问题讨论】:

标签: c system-calls


【解决方案1】:

您需要在文件顶部添加#include &lt;stdio.h&gt;

【讨论】:

  • @rkioji 因为编译器会猜测函数的定义,并且可以很好地猜测 stdio.h 中存在的函数
猜你喜欢
  • 1970-01-01
  • 2013-02-15
  • 2013-12-28
  • 2010-11-01
  • 2011-12-15
  • 2018-03-17
  • 2015-03-18
  • 2012-12-13
相关资源
最近更新 更多