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")
#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")
相关文章推荐
- c++中 string与string.h 的作用和区别
- c++中 string与string.h 的作用和区别
- 如何区别c/c++中的#typedef 和 #define的区别
- C++ 栈和堆的区别和作用,以及内存分配
- C++中string和string.h以及cstring,CString的作用和区别
- c++中 string与string.h 的作用和区别
- C++中 #define与const、inline、typedef的区别
- 转:C++ 匿名namespace的作用以及它与static的区别
- C++中双冒号(::)和单冒号(:)的区别和作用
- C\C++小知识:C\C++中#define和inline的区别
- C++中string和string.h的作用和区别
- C/C++宏定义中#与##区别
- #define中#和##的作用
- C++ 栈和堆的区别和作用,以及内存分配
- c++中typedef与#define的区别
- C++中string和string.h的作用和区别
- C++中string和string.h的作用和区别
- c++ static的作用,以及static对象在类和函数中区别
- C++虚函数和纯虚函数的作用与区别
- c++中虚函数和纯虚函数的作用与区别