示例如下:
#define ASSURE(x) \
if (!(x)) { \
printf("Assure failure in %s line %d\n", __FILE__, __LINE__); \
}
调用这个宏,去判断是否发生溢出:
ASSURE( ( (ULONG) uiMult1 * uiMult2 + (ULONG) uiAdd ) <= MAX_ULONG );
这段宏定义 ASSURE
用于在运行时检查条件是否满足。如果条件 x
不满足,它会打印一条错误信息,包含文件名和行号。以下是详细解释:
#define ASSURE(x)
:定义一个名为ASSURE
的宏,接受一个参数x
。if (!(x))
:检查条件x
是否为假(即x
为 0 或false
)。{ printf("Assure failure in %s line %d\n", __FILE__, __LINE__); }
:如果条件x
为假,打印一条错误信息,包含当前文件名(__FILE__
)和行号(__LINE__
)。