C:GCC编译器冲突类型错误

时间:2014-02-13 20:35:01

标签: c gcc compiler-errors

我正在尝试编译一个我从教科书中逐字复制的程序,但是我收到以下错误:

maxline.c:4:5: error: conflicting types for ‘getline’ /usr/include/stdio.h:675:20: note: previous declaration of ‘getline’ was here maxline.c:26:5: error: conflicting types for ‘getline’ /usr/include/stdio.h:675:20: note: previous declaration of ‘getline’ was here

以下是有问题的行:

4 int getline(char line[], int maxline);

26 int getline(char s[], int lim)

我错过了一些非常明显的东西吗?

1 个答案:

答案 0 :(得分:8)

getlinestdio.h中声明。它没有由ISO C标准指定,但它被指定为扩展,最初由GNU和后来由POSIX指定。 man getline有关预定义getline功能的详细信息,请参阅official POSIX description

你已经使用相同的名称声明了自己的函数,这显然与stdio.h中的声明冲突,它可能看起来像这样(省略restrict限定符以节省空间):

ssize_t getline(char **lineptr, size_t *n, FILE *stream);

为您的函数使用不同的名称(get_line可以使用),或者使用使stdio.h getline-std=c99 -pedantic版本不可见的选项编译您的代码 - 可能类似于{{ 1}}。