所以我有一段代码,如果它处于调试模式,它将访问一个 DLL 命名空间函数,如果它处于发布模式,我想注释掉它。
#ifdef DEBUG
#define (DEBUG_CODE) abcd::
#else
#define (DEBUG_CODE) <Condition to skip processing>
if (some condition)
(DEBUG_CODE) func_name();
虽然我想#else
定义一个注释,但我想你不能这样做,因为它们在任何代码处理或执行预处理之前被编译器跳过。
如果这是正确的,那么请告诉我一种跳过处理的方法(DEBUG_CODE) func_name();
。用的地方很多,不想if(DEBUG)
到处补充。
编辑
命名空间 DLL 具有不返回任何内容的函数,以及预期返回值并且可能分配给enum
.
IE
abcd::func_name();
and
int rs = abcd::func_name_2();
and
enum XYZ{ var1 = 0; var2};
XYZ PQR = abcd::func_name3(); //This Enum will prevent me from defining some kind
// 0; as a `#define`
所以..多种情况..
谢谢你的帮助。