输出可变参数的宏 __VA_ARGS__(C99提供的可变宏),在上文DLog中也有用到过。 它是可变参数宏,对他进行宏定义可以传入不定个数的参数,在他前面加上##则表示可变参数被忽略或为空时会直接将其带来的负面效果移除,就像__VA_ARGS__完全没有存在一样。 举个例子: #defineDLog(s,...)NSLog(@"<%p %@:(%...
C语言,调试必备的DEBUG宏定义 #include <stdio.h> #include <stdarg.h> //仅仅是打印函数名字替换 DEBUG <--> printf #define DEBUG(format, ...) printf(format, ##__VA_ARGS__) //替换打印函数,在打印出来的内容加上前缀 #define XFUNC_PRINT(format, arg...) printf("XFUNC: " format "", #...
在上述代码中,我们定义了一个 DEBUG 宏定义,它用于控制是否编译调试信息。在 main 函数中,我们使用了 #ifdef DEBUG 指令来判断是否定义了 DEBUG 宏定义,如果定义了,则输出调试信息;否则只输出正常信息。宏定义中的多行代码 在宏定义中可以使用 \ 换行符将多行代码合并为一行。例如:在上述代码中,我们定义了...
C语言,调试必备的DEBUG宏定义 1. #include <stdio.h>#include<stdarg.h>//仅仅是打印函数名字替换 DEBUG <--> printf#defineDEBUG(format, ...) printf(format, ##__VA_ARGS__)//替换打印函数,在打印出来的内容加上前缀#defineXFUNC_PRINT(format, arg...) printf("XFUNC: " format "", ##arg)/...
根据DEBUG宏的值来选择对应的打印宏函数。当DEBUG的值为1时启动相关的打印调试语句,DEBUG的值为0时则...
除了使用 #define 宏定义常量外,C语言还提供了使用 const 关键字定义常量的方式。 使用const 关键字定义常量的语法如下: const数据类型 常量名 = 常量值; 其中,常量名是定义的常量的名称,常量值是常量的值。 下面是一些常用例子: // 定义一个整型常量constintMAX_NUM =100;// 定义一个字符常量constcharMY_CHAR...
#cat main.cc #include <stdio.h> #include "log_debug.h" int main() { printf("main\n"); log_debug("hello"); return 0; } build: 打开宏开关的方式: -DDEBUG #g++ -DDEBUG log_debug.h log_debug.cc main.cc -o a muahao@aliyun.com 分类: LANGUAGE-C++ 好...
在上述代码中,我们使用#define指令将PI定义为一个宏,并将其值设置为3.1415926。在程序中,我们可以直接使用PI来代表这个值。2. #ifdef / #ifndef / #endif #ifdef指令用于判断某个符号是否已经被定义,例如:```C #ifdef DEBUG printf("Debug mode.\n");#endif ```在上述代码中,我们使用#ifdef指令来...
参考了网上的现成案例,使用自带的__FILE__等宏,实现debug函数。(rx前缀为个人标识) __FILE__默认会包含代码文件的绝对路径。如果要去掉路径,需要修改设置。 代码截图 #ifndef _RX_DebugBasic_H_ #define _RX_DebugBasic_H_ //是否开启debug打印 包含_RX_DEBUG_则开启debug打印,反之关闭 ...
「#define 定义宏」:告诉 CPP 把所有的 MAX_ARRAY_LENGTH 字符都替换为 20 字符。 #define MAX_ARRAY_LENGTH 20 「#undef 取消已定义宏」:告诉 CPP 取消已定义的 FILE_SIZE,并重新定义它为 42。 #undef FILE_SIZE #define FILE_SIZE 42 「#ifdef 检查宏是否已经定义」:告诉 CPP 如果定义了 DEBUG,则执行...