<b>宏的妙用</b>[VC/C++编程]
本文“<b>宏的妙用</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
1、概述
C++中出了const关键字今后,宏定义常量的功效已经不在被举荐利用.这使 得宏仿佛没有了用武之地.实际上,宏还可以做很多事情,笔者也难以全部摆列 .这里,仅仅摆列几个典型的用法,但愿大家可以从中获益.
2、实现多环境兼容
常见的情形是,我们实现了一个函数,但愿它只在某种编译条件满意是被编译和利用.比方,我但愿在源码中插入调试语句,以便以Debug方法运行时可以 通过调试信息察看程序运行情形.但是,在产品发售给用户时,我又但愿这些调 试信息不要输出,以降低代码尺寸,提高运行性能. 这一问题的办理办法就是 利用宏.按照条件编译指令,关于差别的编译条件,供应差别的实现.比方:我们但愿在特定的位置向日记中写入当前行号和文件名,以判断对应代码能否被执 行到,可以利用下面的宏:
#ifdef _DEBUG
#define TRACE_FILE_LINE_INFO() do{
CString str;
str.Format(_T("file=%s,line=%u
",__FILE__,__LINE__);
CFile file("logfile.txt");
file.Write(str,str.GetLength());
}while(0)
#else
#define TRACE_FILE_LINE_INFO()
#endif
上面这段代码通过#ifdef #else #endif三个条件编译 指令,按照_DEBUG定义情形(该宏用于辨别DEBUG版本和Release版本),决意了 具体的TRACE_FILE_LINE_INFO宏函数的实现.利用者可以用以下办法利用
TRACE_FILE_LINE_INFO();//这里显示行号和文本信息
当然 ,采取其他方法也可以实现这一功效,但是利用宏有以下特别好处: 只有需求 的代码才会被编译,削减了标记表的尺寸,也削减了代码尺寸 宏在编译时被展 开,因此用于表示代码位置的__FILE__,__LINE__宏可以起作用,假如用函数实 现,这两个宏则不能起作用.
以上是“<b>宏的妙用</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |