C/C++宏定义中#与##区别 .
2016-07-11 11:01
316 查看
// #表示:对应变量字符串化
// ##表示:把宏参数名与宏定义代码序列中的标识符连接在一起,形成一个新的标识符
#define U_BOOT_CMD_MKENT_COMPLETE(name,maxargs,rep,cmd,usage,help,comp) \
{#name, maxargs, rep, cmd, usage, _CMD_HELP(help) _CMD_COMPLETE(comp)}
#define U_BOOT_CMD_COMPLETE(name,maxargs,rep,cmd,usage,help,comp) \
cmd_tbl_t __u_boot_cmd_##name Struct_Section = \
U_BOOT_CMD_MKENT_COMPLETE(name,maxargs,rep,cmd,usage,help,comp)
// ##表示:把宏参数名与宏定义代码序列中的标识符连接在一起,形成一个新的标识符
#define U_BOOT_CMD_MKENT_COMPLETE(name,maxargs,rep,cmd,usage,help,comp) \
{#name, maxargs, rep, cmd, usage, _CMD_HELP(help) _CMD_COMPLETE(comp)}
#define U_BOOT_CMD_COMPLETE(name,maxargs,rep,cmd,usage,help,comp) \
cmd_tbl_t __u_boot_cmd_##name Struct_Section = \
U_BOOT_CMD_MKENT_COMPLETE(name,maxargs,rep,cmd,usage,help,comp)
相关文章推荐
- C/C++常考面试题(一):代码分析
- C语言的特点是什么?
- c/c++static关键字
- C++Primer(5th)第三章学习总结-vector篇
- 虚函数和纯虚函数的作用与区别
- 亲戚【并查集】(内附并查集基本操作)
- c语言的一些设问
- 使用C语言编写Python扩展1——Hello World
- C++字符串和int的相互转换
- 如何解决 “fatal error C1083: ”无法打开包括文件
- 堆和栈的一点知识
- C学习笔记(二)C语言标准
- c语言==数据类型(4)
- C++ 棋牌转换
- C++中虚析构函数的作用
- 拷贝构造函数的参数类型必须是引用
- C语言的概述及C的数据类型
- C语言 程序 用*显示cos(x)和sin(x)
- C语言---函数返回值探究
- C++转型