我正在为LCD显示器使用一些嵌入式C代码,其中一个文件包括stdio.h
,并定义fputc
、fgetc
和ferror
.fputc
调用LCD驱动程序代码将字符打印到屏幕上,但其他两个实际上并不做任何有趣的事情.
每当我try 编译该项目时,我都会收到以下错误:
SRC/ST7735.c:1578:5:错误:应为标识符或‘int’前的‘(’ 1578|int Ferror(文件*f){
SRC/ST7735.c:1578:5:错误:应为‘)’在‘(’标记1578|INT之前 错误(文件*f){
如果我将ferror
重命名为其他名称,错误就会消失.另外两个函数不会产生任何问题.我还发现,如果我确实重命名了函数,但在代码中的其他地方调用了ferror
,项目仍然可以编译,而我预计在没有为项目中其他任何地方定义ferror
的情况下,链接会失败.
我使用的是带有-nostdlib
标志的arm-none-eabi工具链,但该项目最初是使用Keil创建的.我不确定这是否是部分原因.我在谷歌上搜索了所有相关信息,但什么也找不到.《GCC》中的ferror
有什么特别之处吗?