我在C程序中看到这段代码,但我不明白。
#define ASSERT(exp) if(!(exp)){PutStr("Err\n");}
请解释并告诉我如何使用它。 谢谢!
答案 0 :(得分:0)
您应该阅读C中的Preprocessor directives。
这里我们创建一个宏,它在编译期间被替换为我们用来定义宏的值。
例如:
我们可以使用
Assert(<some condition or expression>)
通过代码而不是
if(<some condition or expression>)
{
putStr("Err\n");
}
在编译期间,编译器将所有这些Assert替换为实际条件。
答案 1 :(得分:0)
Firest最好更改marco名称,例如MYASSERT
然后我们有:#define MYASSERT(exp) if(!(exp)) {PutStr("Err\n");}
想想当我对一个char数组进行malloc时,我可以使用它:
char * mem = malloc(800);
MYASSERT(mem);
与以下内容相同:
char *mem = malloc(800);
if(!mem)
{PutStr("Err\n");} //well I think you already define PutStr function