Debug log
Sometimes we need to print some logs to show the application is running well during debug. But for release version, we choose to ignore these logs.
So we can use macros to finish these function, in that way, no need to change the code.
#ifdef _DEBUG #define DPRINT(...) printf(__VA_ARGS__) #else #define DPRINT(...) #endif
To use variadic macros, the ellipsis may be specified as the final formal argument in a macro definition, and the replacement identifier __VA_ARGS__ may be used in the definition to insert the extra arguments. __VA_ARGS__ is replaced by all of the arguments that match the ellipsis, including commas between them.