C++ 使用#取消定义而不首先定义(#定义)宏的效果

C++ 使用#取消定义而不首先定义(#定义)宏的效果,c++,macros,googletest,C++,Macros,Googletest,我在测试中包含了这些不必要的代码。这运行得很好,但是当您#取消定义从未定义的宏时会有影响吗 #include <gtest/gtest.h> #include "header.h" #undef protected #undef private #包括 #包括“header.h” #未定义保护 #未定义私有 根据C++规范: 格式为#undef identifier new line的预处理指令将导致指定的标识符不再定义为宏名称如果指定了 标识符当前未定义为宏名称。

我在测试中包含了这些不必要的代码。这运行得很好,但是当您#取消定义从未定义的宏时会有影响吗

#include <gtest/gtest.h>
#include "header.h"
#undef protected
#undef private
#包括
#包括“header.h”
#未定义保护
#未定义私有

根据C++规范:

格式为
#undef identifier new line
的预处理指令将导致指定的标识符不再定义为宏名称如果指定了 标识符当前未定义为宏名称。