C++中的宏定义 G++中参数
如果定义Debug时才能出现的函数调用,那么就可以这样写:
#ifdef DEBUG #define debug(x)/ {/ printf(x);/ } #endif #ifdef RELEASE #define
debug(x)/ {}/ #endif
使用就可以直接使用debug(“abc”);
然后在g或者gcc编译时使用 g def.cpp -D DEUBG,-D 后面的是宏定义名。
如果希望定义多参宏:那么函数括号中参数的变为…即可。但是个人感觉多参还是比较麻烦。如果我工程再开发阶段可能需要打印一些中间值但是在发布阶段这些中间值用户
应该是不需要见到的。那么总不能一行行的添加注释或者删除。这就可以使用宏:
#ifdef DEBUG #include <stdio.h> #define debugp printf //定义为printf函数 #define
debug(CODE) CODE //这里可以输出CODE #else #define debugp // // 将其注释掉 /printf
#define debug(CODE) // //注释掉注意这里只能写 //,在一行写会被注释的。 /CODE #endif
如果希望可以使用gdb调试程序信息,需要在g后添加-g参数。
g -g -o read read.cpp这个语句中-g与-o的位置不能颠倒,否则会有错误。最好-
o这个参数在最后添加。否则很有可能将过去的源文件删除。这个命令就可以写为g++ -g read.cpp -o read
另外.h文件和.cpp应该是配套使用的。否则其他.cpp文件找不到该头文件定义的全局变量。