使用宏将#ifdef放在代码中

Akh*_*hil 0 c++ syntax macros syntax-error

我想做这样的事情

#define VB_S #ifdef VERBOSE
#define VB_E #endif
Run Code Online (Sandbox Code Playgroud)

所以在代码而不是写

#ifdef VERBOSE
    cout << "XYZ" << endl;
#endif
Run Code Online (Sandbox Code Playgroud)

我可以写

VB_S  
    cout << "XYZ" << endl; 
VB_E
Run Code Online (Sandbox Code Playgroud)

这给了我一个编译时错误:程序中的Stray'#'.

任何人都可以说明正确的方法是什么

APr*_*mer 6

您不能将指令放在宏中.(#在宏内部作为另一个表示 - 它是字符串化运算符,必​​须后跟参数id - 但限制比那个意义更旧)