解决构建警告 - "#include指令末尾的额外令牌"

Clo*_*oud 3 c struct compiler-warnings suppress-warnings

我正在测试我在上一个问题中尝试过的解决方案:在struct中使用typedef来命名和索引文本命令

但是,我想将编译器警告保持为无.我为此目的使用静态代码分析工具,对于某些工具(即:LINT),我可以在评论中使用标记手动排除每行的某些规则和警告.

在第一个/最佳答案的情况下,我尝试了该解决方案,但修改了最终结构,如下所示:

struct command commands[] =
{
#include "commands.inc",
{NULL, NULL}
};
Run Code Online (Sandbox Code Playgroud)

这样我就可以知道,在搜索过程中,我是否已经到达这个struct-of-struct中最大的可寻址成员,并且没有得到越界条件.问题是我知道有一个编译器警告,"警告:#include指令末尾的额外令牌".有没有办法禁用此警告?我喜欢这个解决方案,它非常适合我的需求.



最后,我将我的.inc文件更新为:

CMD(list),
CMD(quit),
CMD(start),
Run Code Online (Sandbox Code Playgroud)

代替

CMD(list),
CMD(quit),
CMD(start)
Run Code Online (Sandbox Code Playgroud)

然后,我能够从我的宏定义和静态初始化代码中删除尾随逗号.

Ton*_*ion 13

您应该删除#include指令末尾的逗号.它应该不存在.