Похоже, проблема в том, что система, в которой вы это компилируете, уже имеет определенную функцию getline()
, и ваше определение противоречит этому.Похоже, что glibc, библиотека C, используемая в Linux, имеет нестандартную функцию getline()
, объявленную в stdio.h
.Его не следует определять, если вы не включите строку типа #define _GNU_SOURCE
, чтобы включить в нее нестандартные функции, но может случиться так, что это предопределено на основе того, как вы компилируете код.
Самым простым решением было бы переименовать вашу функцию во что-то другое, но вы также можете попытаться найти в параметрах компилятора, почему включены расширения GNU.
Теперь, когда вы отредактировали свой код, ваш второйпроблема в том, что ваши #define
строки неверны.Вам не нужно равно или точка с запятой;они обрабатываются препроцессором , синтаксис которого отличается от синтаксиса C, и все, что вам нужно сделать, это написать #define NAME VALUE
.
Правильный синтаксис:
#define ENDOFFILE -1
#define TOOMANYNUMS -2
#define LIMIT 256