# ## @#(字符串化操作符,粘接附,字符化操作符)
来源:互联网 发布:中国教育大数据研究院 编辑:程序博客网 时间:2024/06/05 21:55
1. 字符串化操作符#
#include <stdlib.h>#include <stdio.h>
using namespace std;
#define warn_if(x)\
do{\
if(x)\
printf("warn "#x"\n");\
}while(0);
int main()
{
int eric=3;
warn_if(eric==3);
return 0;
}
2. 连接字符串
#define lian(x,y) x##y
int lian(xx,yy)=1;
cout<<xxyy<<endl;
output 1
用法1
#define DESC_LEN 5
struct ModuleDesc
{
ModuleNo no;
char desc[DESC_LEN+1];
};
#define MODSTRING(mod) {mod,##mod}
struct ModuleDesc desc[]=
{
MODSTRING(PR000),
MODSTRING(SY000)
};
用法2
当为空时消除前面的逗号
例如
#define myprint(str,...) fprintf(stderr,str,__VA_ARGS__)
如果一下调用时
myprint("eric"); 编译会失败.
这时定义宏如下
#define myprint(str,...) fprintf(stderr.str,##__VA_ARGS__)可以解决此问题
同理,可变参有名称时定义如下:
#deifine myprint(str, args...) fprintf(stderr,str,##args)
3. 字符化操作符
#define ToChar(x) #@x
在g++中不能编译通过,应该是不支持。
0 0
- # ## @#(字符串化操作符,粘接附,字符化操作符)
- 字符串化操作符#,粘接附##,字符化操作符@#
- 字符和字符串操作
- Linux C 中字符串化操作符#
- php 字符串操作 字符 php
- 字符及字符串操作函数
- Standard_C_字符和字符串操作
- c字符和字符串操作
- 字符/字符串操作函数(C)
- 字符及字符串操作函数
- 字符串连接操作符“+”
- 字符串重复操作符
- 字符串操作符 +
- 字符串操作符
- 字符串格式化 (%操作符)
- 字符串格式化 (%操作符)
- perl字符串操作符
- Python列表操作符(标准类型操作符、切片、连接字符、列表解析、重复操作)
- ARM学习笔记 (二)存储系统
- c/c++常用算法(7) -- 基本算法思想
- MFC Activex VS2010
- Javascript selection的兼容性写法
- QFile和QTextStream配合使用
- # ## @#(字符串化操作符,粘接附,字符化操作符)
- C# ArrayList循环遍历ListBox
- android 微信朋友圈 中 回复功能的实现 是怎么弄的呢?寻求帮助
- XML解析之——使用dom4j解析XML
- 用xib文件自定义UIview的实现
- POJ 1426 Find The Multiple
- python模块学习---mechanize(模拟浏览器)
- Reactor模式,或者叫反应器模式
- 记