Как GCC интерпретирует определение ferror?
Я работаю с некоторым встроенным кодом C для ЖК-дисплея, в котором один из файлов включаетstdio.h
и определяет,fgetc
, и .fputc
вызывает код драйвера ЖК-дисплея для вывода символа на экран, но два других на самом деле не делают ничего интересного.
Всякий раз, когда я пытаюсь скомпилировать проект, я получаю следующую ошибку:
src/ST7735.c:1578:5: ошибка: ожидаемый идентификатор или '(' перед 'int'1578 | int ferror(FILE *f){
src/ST7735.c:1578:5: ошибка: ожидается ')' перед токеном '(' 1578 | intferror(FILE *f){
Ошибка исчезает, если я переименую что-нибудь еще. Две другие функции не создают никаких проблем. Я также обнаружил, что если я переименую функцию, но вызову ее в другом месте кода, проект все равно скомпилируется, тогда как я ожидал, что связывание завершится ошибкой без определения где-либо еще в проекте.
Я использую набор инструментов arm-none-eabi с-nostdlib
флаг, но изначально проект создавался с помощью Keil. Я не уверен, является ли это частью объяснения. Я искал в Google любую соответствующую информацию, но ничего не нашел. Есть ли что-то особенное вferror
в ГСК?