关于宏

C/C++里面宏的用法很赞啊!

能写一手的好宏能节省开发时间,提高开发的效率。废话我就不多说的了。

在ANSI标准提供了五个预定义的宏名。它们是:
__LINE__:编译时提供程序的当前行数。
__FILE__:编译时提供程序的当前文件名。
__DATE__:月/日/年的串,表示源文件被翻译到代码时的日期。
__TIME__:宏指令包含程序编译的时间。时间用字符串表示,其形式为: 分:秒。
__STDC__:宏指令的意义是编译时定义的。一般来讲,如果__STDC__已经定义,编译器将仅接受不包含任何非标准扩展的标准C/C++代码。如果实现是标准的,则宏__STDC__含有十进制常量1。如果它含有任何其它数,则实现是非标准的。

当我们希望在C++程序里面输出一些调试打印信息时,新手习惯直接cout或者printf...如果这样的话,在程序发布的时候,你是需要很麻烦地识别哪个是输出调试信息的代码,并且把他们一一去掉。

不如使用宏来解决这个问题!

可以在头文件里面定义一段宏:

#ifdef DEBUG

#define Diagoge(Info) std::cout<<(info)<<__LINE__<<std::endl

#endif

然后在包含这个头文件的源文件里面:

#define DEBUG

这样就可以使用我们预定义的调试宏了:Diagoge(...)

在我们源程序发布的时候我们可以取消这个宏,所发布的代码里面就不会有乱七八糟的输出调试的代码了。

宏的用法还有很多。在C里面,它有时候是一种非常有用的代码复用手段。

读者可以自行阅读LUA编译器的代码,会有更多的启发!

你可能感兴趣的:(简单的宏用法)