如何提示C语言中使用了未定义的宏
Technical Note
Architectures:
All
Component:
compiler
Updated:
2023/7/28 8:50
问题
在C语言中使用了未定义的宏,但是编译器编译时不会提示。
原因
在C语言标准中,当宏未定义时,该宏的值为0,所以默认情况下编译器编译时不会提示,而是根据C语言标准将未定义宏的值当作0来处理。
注意:IAR编译器中有对应未定义宏的诊断信息Pe193,但是Pe193默认是remark,不会在Build窗口提示。
解决方法
将诊断消息Pe193从默认的remark提升到warning或者error:
这时如果代码中有未定义的宏,编译器编译时在Build窗口会提示[Pe193]: zero used for undefined preprocessing identifier "xx":
参考文献: