Я работаю через K & RC и GCC продолжает давать мне эту ошибку, например, 1.9:Конфликтующие типы
arrays.c:4:5: error: conflicting types for ‘getline’
/usr/include/stdio.h:675:20: note: previous declaration of ‘getline’ was here
arrays.c:27:5: error: conflicting types for ‘getline’
/usr/include/stdio.h:675:20: note: previous declaration of ‘getline’ was here
make: *** [arrays] Error 1
Мой код:
#include <stdio.h>
#define MAXLINE 1000 /* maximum input line size */
int getline(char line[], int maxline);
void copy(char to[], char from[]);
/* print longest input line */
int main()
{
int len; /* current line length */
int max; /* maximum length seen so far */
char line[MAXLINE]; /* current input line */
char longest[MAXLINE]; /* longest line saved here */
max = 0;
while ((len = getline(line, MAXLINE)) > 0)
if (len > max) {
max = len;
copy(longest, line);
}
if (max > 0) /* there was a line */
printf("%s", longest);
return 0;
}
/* getline: read a line into s, return length */
int getline(char s[], int lim)
{
int c, i;
for (i=0; i<lim-1 && (c=getchar()) !=EOF && c!='\n'; ++i)
s[i] = c;
if (c == '\n') {
s[i] = c;
++i;
}
s[i] = '\0';
return i;
}
/* copy: copy 'from' into 'to'; assume to is big enough */
void copy(char to[], char from[])
{
int i;
i = 0;
while ((to[i] = from[i]) != '\0')
++i;
}
Я понимаю, что ошибка говорит о некоторых несоответствие между прототипом функции getline и функцией функции getline. Я скопировал и вставил один и тот же код из вопроса другого человека, чтобы проверить, не сделал ли я опечатку. Он возвратил то же сообщение об ошибке. Я не знаю, получаю ли я эту ошибку, потому что K & Код R устарел или это связано с тем, как GCC компилирует код. Пожалуйста, помогите мне найти то, что я делаю неправильно.
Как раздражает. Большое спасибо за Вашу помощь! – Raeven
getline по-прежнему не входит в стандартную библиотеку - он начинался как расширение GNU и был поднят в POSIX 2008 –
@NigelHarper: Действительно, пытаясь выполнить поиск через [несколько] (http: //www.csse.uwa. edu.au/programming/ansic-library.html#stdio) [ссылка] (https://en.wikipedia.org/wiki/Stdio.h) [сайты] (http://www.acm.uiuc.edu/ webmonkeys/book/c_guide/2.12.html) для ANSI C не дает ссылки на 'getline'. – voithos