How to implement a Lamda macro in C?

As as coder, I think giving a right name to a variable is annoying. I many program language we can use Lamda function to avoid it. However, The C language don't provide this grammar feature for us. I spend few minutes writting a macro to implementing this featrue. Here is the example, I can be compiled in gcc, but no in g++.