码迷,mamicode.com
首页 > 编程语言 > 详细

c++点滴

时间:2014-11-06 14:30:54      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:style   http   io   color   ar   sp   文件   on   art   

1\\ C++宏:

????(1)#作用是将其后面的宏参数进行字符串化操作(Stringfication;

????eg: #define WARN_IF(EXP)????

???? do{ if (EXP)????

????????????????fprintf(stderr, "Warning: " #EXP "\n"); }???

??????? ?while(0)

????WERN_IF(value == 0);

????//展开后为:

????do{

????????if (value == 0)

????????fprintf(stderr,"Warning: valude == 0");

????}while(0);

????(2)##连接器(concatenator),用来将两个Token(记号)连接为一个Token,作用对象不再限于宏参数,也可以连用

????????#define DECLARE_HANDLE(name) struct name##__{int unused;}; typedef struct name##__ *name(重定义struct name##__的指针类型为name)

????DECLARE_HANDLE(hWnd);

????hWnd hd;

????将得到一个结构体指针;

????--------------------------------------

????:凡宏定义中有###的地方,宏参数不会被展开

????#define A 2;

????#define PARAM(A) #A##_;

????printf("%s",PARAM(A));

????得到printf("%s",A_);????// compile error

????宏参数A不会被展开为期望的2_????

????(3)C语言预定义宏:

????__DATE__
????
进行预处理的日期("Mmm dd yyyy"形式的字符串文字

????__FILE__
????
代表当前源代码文件名的字符串文字

????__LINE__
????
代表当前源代码中的行号的整数常量

????__TIME__
????
源文件编译时间,格式微"hhmmss"

????__FUNCTION__(__fucn__)
????
当前所在函数名?

????__DATE__, __TIME__确实打印的是build时的时间, 如果rebuild程序, __DATE__, __TIME__也随之改变了

2\\typedef:

????struct INT__

????{

????????int a;

????};

????typedef INT__* pit;???????? //重定义INT__指针类型为pit

????typedef INT__ it;

????pit pt = NULL;

????pt->a = 1000;

c++点滴

标签:style   http   io   color   ar   sp   文件   on   art   

原文地址:http://www.cnblogs.com/fegnze/p/4078517.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!