我目前负责从一台设备获取代码以在另一台设备上运行,并且具有该功能的摘要,这意味着由于该模块的切断,我需要关闭或提供未提供的接口。尝试编译时,我遇到了语法错误,这使我感到困惑。
在.h
文件中,我在全局范围内找到了这样的前向声明:
void INT_CODE_ATTR fatal_error (unsigned char error_module, unsigned short error_line);
未定义INT_CODE_ATTR
的地方。由于我不知道该怎么办,应该这样做:
#define INT_CODE_ATTR
void INT_CODE_ATTR fatal_error (unsigned char error_module, unsigned short error_line);
这给了我错误:
错误:声明未声明任何内容[-fpermissive]
所以我将;
更改为{}
,导致此错误:
错误:'{'令牌之前的预期不合格ID
我以为它与INT_CODE_ATTR
有关,因此我将其注释掉,但错误仍然存在。另外,整行都用下划线标出(在Eclipse中),它告诉我的只是:“语法错误”。
请澄清一下,我最后一次尝试解决此问题的方法如下:
#define INT_CODE_ATTR
void /*INT_CODE_ATTR*/ fatal_error (unsigned char error_module, unsigned short error_line) {}
您提供的代码段效果很好。那里没问题(一旦您定义了INT_CODE_ATTR)。
运行gcc -E或等效的编译器,以查看预处理器从您的实际代码中得到什么。实际的编译器得到的不是您编写的,而是使输入混乱了。