What does ## mean for the C(C++) preprocessor?
c, c-preprocessor, stringification
Solution
nothing too fancy: `##` tells the preprocessor to concatenate the left and right sides
see http://en.wikipedia.org/wiki/C_preprocessor#Token_concatenation
Problem
I have a C program below: ``` #define f(g,g2) g##g2 main() { int var12=100; printf("%d",f(var,12)); } ``` when I run just the preprocessor it expands this as ``` { int var12=100; printf("%d",var12); } ``` which is the reason why the output is 100. Can anybody tell me how/why the preprocessor expands `var##12 to var12`?