C语言宏定义时#(井号)和##(双井号)的用法
来源:互联网 发布:51vv直播软件 编辑:程序博客网 时间:2024/05/19 01:09
http://www.cnblogs.com/welkinwalker/archive/2012/03/30/2424844.html
#在英语里面叫做 pound
在C语言的宏定义中,一个#表示字符串化;两个#代表concatenate(串联,字符之间相加的意思)
举例如下:
#include <iostream>
void quit_command(){
printf("I am quit command\n");
}
void help_command(){
printf("I am help command\n");
}
struct command
{
char * name;
void (*function) (void);
};
#define COMMAND(NAME) {#NAME,NAME##_command}
#define PRINT(NAME) printf("token"#NAME"=%d\n", token##NAME)
main(){
int token9=9;
PRINT(9);
struct command commands[] = {
COMMAND(quit),
COMMAND(help),
};
commands[0].function();
}
void quit_command(){
printf("I am quit command\n");
}
void help_command(){
printf("I am help command\n");
}
struct command
{
char * name;
void (*function) (void);
};
#define COMMAND(NAME) {#NAME,NAME##_command}
#define PRINT(NAME) printf("token"#NAME"=%d\n", token##NAME)
main(){
int token9=9;
PRINT(9);
struct command commands[] = {
COMMAND(quit),
COMMAND(help),
};
commands[0].function();
}
得到的结果是:
token9=9
I am quit command
- 顶
- 0
阅读全文
0 0
- C语言宏定义时#(井号)和##(双井号)的用法
- C语言宏定义时#(井号)和##(双井号)的用法
- C语言宏定义时#(井号)和##(双井号)的用法
- C语言宏定义时#(井号)和##(双井号)的用法
- C语言宏定义时#(井号)和##(双井号)的用法
- C语言宏定义时#(井号)和##(双井号)的用法
- C语言:宏定义的#和##用法
- C语言中宏定义"#"和"##"符号的用法
- C语言宏定义中 "#","#@"和 "##"的用法
- C语言宏定义的几个坑和特殊用法
- C语言宏定义的用法
- c语言中宏定义的用法
- 【C语言】宏定义的用法总结
- C语言宏定义时#(井号)和##(双井号)作用
- C宏定义#和##的用法
- c 语言中宏定义和定义全局变量的区别
- C语言宏定义,内置宏的用法
- C语言宏定义,内置宏的用法
- Desired Capabilities详解(11)
- FastDFS安装、配置、部署(一)
- Nginx代理webSocket经常中断的解决方案, 如何保持长连接
- 关于实体、信息与数据的关系
- expdp命令远程备份
- C语言宏定义时#(井号)和##(双井号)的用法
- Hibernate JPA —— could not insert 或 detach entity passed to persist 或Found shared references 错误
- null, equals(""), isEmpty 区别
- 单例模式解析
- 系统学习1——C程序的生命周期
- Tox 聊天工具
- Maven如何手动添加依赖的jar文件到本地Maven仓库
- 机器学习原来如此有趣!全世界最简单的机器学习入门指南
- unity自定义inspector面板(选择不同枚举类型,inspector面板出现不同信息)