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__
实现此功能。
写C语言代码时经常会有一个函数传递不同数量参数的需求。例如:
PL_ASSERT(OK == ret); PL_ASSERT(OK == ret, "error code: %d\b", ret);
对于前者,只要检查ASSERT条件,而对于后者,希望触发ASSERT时打印具体的ret数值。
本文描述如何通过C99语言 __VA_ARGS__
实现此功能。