如何提示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":  

 

参考文献:  

  1. https://www.iar.com/knowledge/learn/programming/advanced-preprocessor-tips-and-tricks/ 

We do no longer support Internet Explorer. To get the best experience of iar.com, we recommend upgrading to a modern browser such as Chrome or Edge.