我正在测试我在先前的问题中尝试过的解决方案:在结构体内使用typedef为命名和索引文本命令。
然而,我希望保持我的编译器警告为零。我使用静态代码分析工具来达到此目的,在某些工具(如:LINT)的情况下,我可以使用我的注释中的标记在每行上手动排除某些规则和警告。
对于第一个/顶部答案,我尝试了该解决方案,但修改了最终结构,使其看起来像这样:
然而,我希望保持我的编译器警告为零。我使用静态代码分析工具来达到此目的,在某些工具(如:LINT)的情况下,我可以使用我的注释中的标记在每行上手动排除某些规则和警告。
对于第一个/顶部答案,我尝试了该解决方案,但修改了最终结构,使其看起来像这样:
struct command commands[] =
{
#include "commands.inc",
{NULL, NULL}
};
我希望在搜索过程中,能够知道是否已经到达该结构体数组中最大可寻址成员,以避免越界情况。但问题是,我现在收到了一个编译器警告:"警告:#include指令末尾有多余的标记"。有没有办法禁用这个警告?我很喜欢这个解决方案,它非常适合我的需求。
最终,我更新了我的.inc文件如下:
CMD(list),
CMD(quit),
CMD(start),
替代
CMD(list),
CMD(quit),
CMD(start)
接下来,我成功地从我的宏定义和静态初始化代码中删除了尾随逗号。
#
开头的行用于预处理器,编译器不会看到它们。 - wallyk#define COMMAND(NAME) { #NAME, CMD_ ## NAME },
... - Agnius Vasiliauskas