Ошибка компиляции примера из учебника - C (СИ)
Формулировка задачи:
Переписал вот такой вот код из учебника по c ansi от Денниса Ритчи и Брайана Кернигана:
Во время компиляции мне выводит ошибку:
Я немного недопонимаю - как это в коде из УЧЕБНИКА может быть ошибка? Я же всё правильно переписал. Разве что, начинающую скобку в функции писал не на отдельной строке, а в строке обьявления функции (так можно делать. Позаимствовал ещё с джавы)
#include <stdio.h> #define MAXLINE 1000 //Максимальная длина строки в потоке int getline(char line[], int maxline); void copy(char to[], char from[]); //вывод самой длинной строки в потоке main(){ int len; //длина текущей строки int max; //текущая максимальная длина char line[MAXLINE]; //текущая введённая строка char longest[MAXLINE]; //самая длинная строка из введённых max=0; while ((len = getline(line, MAXLINE)) > 0) if (len > max) { max = len; copy(longest, line); } if (max > 0) //была непустая строка printf("%s", longest); return 0; } } //getline: считывает строку в s, возвращает её длину 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: копирует строку 'from' в 'to'; длина to считается достаточной void copy(char to[], char from[]){ int i; i = 0; while ((to[i] = from[i]) != '\0') ++i; }
ancient@NickolayPC:~ > cd c ancient@NickolayPC:~/c > gcc 1. 1.7.c 1.9.c ancient@NickolayPC:~/c > gcc 1.9.c 1.9.c:4:5: error: conflicting types for ‘getline’ int getline(char line[], int maxline); ^ In file included from 1.9.c:1:0: /usr/include/stdio.h:678:20: note: previous declaration of ‘getline’ was here extern _IO_ssize_t getline (char **__restrict __lineptr, ^ 1.9.c:24:1: error: expected identifier or ‘(’ before ‘}’ token } ^ 1.9.c:27:5: error: conflicting types for ‘getline’ int getline(char s[], int lim){ ^ In file included from 1.9.c:1:0: /usr/include/stdio.h:678:20: note: previous declaration of ‘getline’ was here extern _IO_ssize_t getline (char **__restrict __lineptr, ^ ancient@NickolayPC:~/c >
Решение задачи: «Ошибка компиляции примера из учебника»
textual
Листинг программы
int main() { }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д