https://dbj.org/c-macros-with-variable-number-of-arguments/
A bit different handling of variable number of arguments.