defined 可以理解为定义了
defined(xx) 是否成立的就是xx 是否被宏定义,若果被宏定义了,则成立,如果没有被宏定义,则不成立,
写个demo 理解下
#include <iostream> #include <string> using namespace std; #define POWER 1 int main() { #if defined(POWER) cout << "power==1" << endl; #elif defined(HELLO) cout << "power==1" << endl; #else cout << "power==1" << endl; #endif return 0; };
POWER 和HELLO 它们2个POWER 被定义了,它是成立的,所以这里会走到#if ,由于HELLO没有宏定义,#elif 不会走的