Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 宏参数是子宏定义的一部分_C_Macros_C99 - Fatal编程技术网

C 宏参数是子宏定义的一部分

C 宏参数是子宏定义的一部分,c,macros,c99,C,Macros,C99,我想知道有没有办法做到这一点 我的要求是使宏参数成为子宏名称的一部分 例如: 我有 #if defined DEBUG_1 #define DEBUG_PRINT_1(fmt,args...) printf(fmt, ##args) #if defined DEBUG_2 #define DEBUG_PRINT_2(fmt,args...) printf(fmt, ##args) 我想将这些宏组合成一个可配置的宏,如下所示 #if defined DEBUG_x #define DEBUG_

我想知道有没有办法做到这一点

我的要求是使宏参数成为子宏名称的一部分 例如:

我有

#if defined DEBUG_1
#define DEBUG_PRINT_1(fmt,args...) printf(fmt, ##args)

#if defined DEBUG_2
#define DEBUG_PRINT_2(fmt,args...) printf(fmt, ##args)
我想将这些宏组合成一个可配置的宏,如下所示

#if defined DEBUG_x
#define DEBUG_PRINT_x(fmt,args...) printf(fmt, ##args)
我如何在第二个语句中放置这个x


让我知道这是否可行,并建议使用单个宏定义而不是多个定义来实现这种打印详细性的其他方法

那么您将如何定义这些定义?
#如果已定义调试(1)
不适合我编译。让一个宏
DEBUG#u PRINT(number,fmt,args…
检查是否定义了
DEBUG#u#number
如何?(参考答案的第二部分。)#如果定义了调试(1),则无法编译。我对这个问题做了编辑,你想得到什么?为什么只需要定义一个宏?使用源代码不需要所有这些吗?我几乎有25个这样的级别来调试系统。只是想减少代码的大小和可读性。