摘要:
断言Andrei Alexandrescu本部分“泛型”讨论断言(assertions),一个你兵器库内非常强大的工具。以assert为基础,我们建立一个更强大的工具,帮助你建立更好的程序。我们很快就能看到,断言不仅是简单的工具/宏/函数。这是一种生活方式,一道深深的鸿沟把程序员们分成两类:了解,和不了解断言的力量。Assert(cool);那么,断言到底包含了什么?为什么你要重视断言?你什么时候需要用到断言,并且同样重要的,什么时候你不想要用到断言。我的看法是断言(例如用标准assert宏表示)是一个最最简单强大的工具来保证程序的正确性。断言的威力通常被低估了,至少在我参与的项目中是这样。可 阅读全文
摘要:
在我们的开发测试阶段不可避免的要进行打印调试,在生成release的版时又需要去除打印信息,我们可以采用条件编译的方式解决这个问题,具体方法如下:#ifndef DEBUG_2012_06_06#define DEBUG_2012_06_06#endif#ifdef DEBUG_2012_06_06#define myPrint(str, ...) {\ printf(str, ##__VA_ARGS__);\}#else#define myPrint(str, ...)#endif这样我们在打印输出的地方使用我们自己的myPrint宏就像使用printf函数一样使用,在生成rele... 阅读全文
摘要:
写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性 等等。下面列举一些成熟软件中常用得宏定义。。。。。。1,防止一个头文件被重复包含#ifndef COMDEF_H#define COMDEF_H//头文件内容#endif2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。typedef unsigned char boolean; /* Boolean value type. */typedef unsigned long int uint32; /* Unsigned 32 bit value */typedef uns 阅读全文
摘要:
在C语言中,将某一位置0或置1,可以写成宏的形式,如下:#define SETBIT(x,y) (x |= (1>y) & 1) //获取X的第Y位的值 阅读全文
摘要:
在我们的C语言程序中,经常用到布尔类型,但是C标准并不支持布尔类型,但我们可以自己实现其类型,实现代码如下:typedef enum{ false = 0, ture = !false}bool; 阅读全文