--- foo.c --- #include #define X(a,b)float a##__LINE__(int x,int y){b;} #include "bar.c" int main() { #define X(a,b)printf(#a" = %f\n",a##__LINE__(2,3)) #include "bar.c" } --- bar.c --- X(foo, { return x+y+2; }); X(bar, { return x*y; }); X(qux, { float yy=y; return x/yy; });