首页 > 代码库 > C宏定义中的 #,##,#@
C宏定义中的 #,##,#@
宏定义中会出现#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);
最最终的实例程序如下:
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 123 #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); }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。