最近用vscode看代码的时候发现,有一块代码有使用 #ifdef去限定,如果vscode在打开的文件夹里面没有检测的相关的宏定义,那么下面的代码就会显灰色,表示没有检测到宏定义,不会执行下面的代码块。
但是我在代码实际运行过程中,发现一定是执行了显灰的那一块代码块的,但是我明确的在一个头文件中发现了这一个宏定义被注释掉了
在其他地方也找不到相应的定义,那么是怎么运行到里面去的呢,代码是不会骗人的,找了很久的原因,最终我在代码里面全搜AVM_FBO_RENDER,发现在mk编译文件里看到一个看起来有些相关的代码
但是看起来根本就不是宏定义的语法,我复制到百度去搜索这个关键字
原来在mk编译文件里也能够宏定义,所以在代码实际运行的时候是能够走到下面显灰的代码块中的,被vscode这个显灰折磨了半天,要始终相信一点:代码是不会骗人的,不要怀疑程序