C:有效的宏用法

And*_*NER 3 c macros

#ifndef MACROS_NULLCHECK_H_
#define MACROS_NULLCHECK_H_

#include <assert.h>

#define NULLCHECK(x) assert(x != (void *) 0);

#endif
Run Code Online (Sandbox Code Playgroud)

如果我使用上面的样式作为声明宏的模板,你会有什么附带条件?

APr*_*mer 14

  • 在参数周围加上括号(它可以防止传递表达式时出现问题)

  • 不要放 最后(使用会更自然)

    #define NULLCHECK(x)断言((x)!=(void*)0)