什么意思是c中宏中的多个逗号

时间:2015-08-24 09:44:00

标签: c arrays macros hex c-preprocessor

这个宏意味着什么或结果是什么?

#define MOD_TYPE_12 0x11, 0x20, 0x0C, 0x00, 0x02, 0x00, 0x07, 0x0F, 0x42, 0x40, 0x01, 0xC9, 0xC3, 0x80, 0x00, 0x02

这是否被评估为数组?

我找不到任何东西......也许是因为我不知道我要搜索^^

2 个答案:

答案 0 :(得分:2)

所有

  

MOD_TYPE_12

程序中的

将替换为

  

0x11,0x20,0x0C

没有逗号专长

答案 1 :(得分:1)

逗号在宏中没有任何特殊含义,只要在使用宏时复制它们即可。例如:

int arr = {MOD_TYPE_12};

变为

int arr = {0x11, 0x20, 0x0C, 0x00, 0x02, 0x00, 0x07, 0x0F, 0x42, 0x40, 0x01, 0xC9, 0xC3, 0x80, 0x00, 0x02};

或者:

someFunction(MOD_TYPE_12);

变为

someFunction(0x11, 0x20, 0x0C, 0x00, 0x02, 0x00, 0x07, 0x0F, 0x42, 0x40, 0x01, 0xC9, 0xC3, 0x80, 0x00, 0x02);