1 现象
用vscode 阅读代码时,一些头文件中定义的宏不是显示include 到.c或者.h中,或者是一些宏是在编译器设置级别定义的,就会出现宏未定义现象。比如:
在autoconfig.h 为编译过程中自动生成的头文件,在该文件中定义了CONFIG_LONG_FILE_NAME;
随后在ffconf.h 文件中定义了一个新的宏,_USE_LFN, 这个宏依赖与CONFIG_LONG_FILE_NAME,很明显vscode显示错了
这样显示对阅读代码非常不爽, 容易被误导
2 解决
方法一: 在ffconf.h 中显示加入#include "autoconf.h", 显示加入头文件;
方法二:
方法1 虽然也能解决问题,不过要修改代码,比如阅读一个比较庞大的开源代码,需要在很多文件中都加入,容易出错;
所以在阅读代码中,针对关注的宏,直接在c_cpp_properties.json中配置指定的宏定义,如下图所示
最后看下效果: 已经显示正常了