Yanyg - Software Engineer

Detects arguments number in a macro

写C语言代码时经常会有一个函数传递不同数量参数的需求。例如:

PL_ASSERT(OK == ret);
PL_ASSERT(OK == ret, "error code: %d\b", ret);

对于前者,只要检查ASSERT条件,而对于后者,希望触发ASSERT时打印具体的ret数值。

本文描述如何通过C99语言 __VA_ARGS__ 实现此功能。