您的位置:首页 > 编程语言 > C语言/C++

C++中#define中的#与##作用和区别

2017-05-29 14:04 363 查看
#define语句中的#是把参数字符串化,##是连接两个参数成为一个整体。

#define FACTORY_REF(name) { #name, Make##name }

中#name就是将传入的name进行字符串化,Make##name就是将Make跟name进行连接,使它们成为一个整体

如:

1. ##

##是一个连接符号,就是用于把参数连在一起

例如:

#define fun(arg) my##arg

fun(hello)

相当于 myhello

2.#:

是“字符串化”的意思。出现在宏定义中的#是把跟在后面的参数转换成一个字符串

例如:

#define STRCPY(dst, src) strcpy(dst, #src)



STRCPY(buff, hello)

相当于 strcpy(buff, "hello")
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: