目前,我的任务是从一台设备获取代码以在另一台设备上运行,并且具有该功能的摘要,这意味着由于该模块的切断,我需要关闭或提供未提供的接口。尝试编译时,我遇到了语法错误,这使我感到困惑。
在一个.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]
所以我更改;
为{}
导致此错误:
错误:“ {”令牌之前的预期unqualified-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或等效的编译器,以查看预处理器从实际代码中得到的内容。实际的编译器得到的不是您编写的,而是混乱了输入。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句