The combination of compound literals and variadic macros is indeed pretty neat. It can also be used to implement Java-style variadic functions (ie when the variadic parameters have a single type):
#define sum(...) \
sum_(sizeof ((int []){ __VA_ARGS__ }) / sizeof (int), (int []){ __VA_ARGS__ })
int sum_(size_t count, int values[])
{
int s = 0;
while(count--) s += values[count];
return s;
}
Hello,
I am the author of the linked blog. Your idea is indeed very neat too. Refer to the comment made in the blog by Jens Gustedt. It has lots of potential imo
Instead of calling:
You can write: edit: didn't see this in the blog comments, wasn't trying to steal credit ;-P