首页 > 试题广场 >

定义宏#define DECLARE(name, ty...

[单选题]
定义宏#define DECLARE(name, type) type name##_##type##_type,
则DECLARE(val, int)替换结果为()
  • int val_int_type
  • int val_int_int
  • int name_int_int
  • int name_int_name
“##”是一种分隔连接方式,它的作用是先分隔,然后进行强制连接(去掉两个字符串间的空格)。
在此宏定义中,“name”和第一个“_”之间被分隔了,第一个“_”与“type“被分隔了,“type”和“_type”被分隔了,于是预处理器会把整个解释成4段:“name”、“_”'、“type”、"_type",这4段中,只有“name”和“type”可以被替换,于是就成为int val_int_type。
 
发表于 2019-08-21 21:28:07 回复(0)