- UID
- 580
- 精华
- 积分
- 561
- 威望
- 点
- 宅币
- 个
- 贡献
- 次
- 宅之契约
- 份
- 最后登录
- 1970-1-1
- 在线时间
- 小时
|
宏定义中会出现#xxx ,A###B,以及微软独自特有的#@xxx。分别解释。
1 define SB(x) #x
它的作用是把输入的东西转换为字符串
string str = SB(123);
2 define BB(x) UXX##x
这个是个符号连接的作用,把UXX(随意的跟符号x连接成一个新的符号,这里说的符号就是变量的意思
int BB(1);
U1 = 100;
3 define CB(x) #@x
作用会是把x的最后一个字符转换成字符,这个是Windows独有的。
char b = CB(14c2);
最最终的实例程序如下:- #include <iostream>
- #include <fstream>
- #include <string>
- #include <stdio.h>
- using namespace std;
- #define H1 12\
- 3
- #define SB(x) #x //translate to a string
- #define BB(x) U##x //produce a new symbol
- #define CB(x) #@x //make the last to a char
- void main()
- {
- int x = H1;
- //cout<<x<<endl;
- ofstream fout("1.txt");
- fout<<x<<endl;
- fout<<"1234"<<endl;
- fout.close();
- FILE* fp = fopen("2.txt","w");
- fwrite(&x,4,1,fp);
- fprintf(fp,"%d",x);
- fclose(fp);
- string str = SB(123);
- std::cout<<str<<endl;
- int BB(1);
- U1 = 100;
- cout<<U1<<endl;
- char b = CB(14c2);
- }
复制代码 |
|