首页 > 试题广场 >

定义宏#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”和第一个“_”之间被分隔了,所以预处理器会把name##_##type##_type解释成4段:“name”、“_”、“type”以及“_type”,name和type会被替换,而_type不会被替换
发表于 2019-10-04 16:25:11 回复(2)
比较简单的方式丢编译器,然后得到疑问##,丢百度
得出楼上结果,学习了。
分隔符: ## 是一种分隔连接方式,它的作用是先分隔,然后进行强制连接
但也要了解宏定义只是单纯的宏替换,注意必要的括号

发表于 2019-10-06 12:52:23 回复(0)