我不知道任何编译器警告,但您可以尝试使用splint静态分析器工具.根据其文件(强调我的):
Splint检测声明但从未使用过的常量,函数,参数,变量,类型, 枚举器成员以及结构或联合字段.
正如我检查的那样,它的作用是有意的.这是示例代码:
#include <stdio.h>
enum Month { JAN, FEB, MAR };
int main()
{
enum Month m1 = JAN;
printf("%d\n", m1);
}
Run Code Online (Sandbox Code Playgroud)
通过运行该splint命令,您将获得以下消息:
main.c:3:19: Enum member FEB not used
A member of an enum type is never used. (Use -enummemuse to inhibit warning)
main.c:3:24: Enum member MAR not used
Run Code Online (Sandbox Code Playgroud)