* getTyp (コード片シリーズ#2) -(by [[K]], 2024.06.17) ** (1) -変数の型を取りたい。以下みたいなことをやりたい。 #define Typ_i int #define Typ_d double #define Typ_s String autoPrint(i); // int. autoPrint(d); // double. autoPrint(s); // String. -以下はコード片。 #define ACat_Helper(x, y) x##y #define ACat(x, y) ACat_Helper(x, y) #define ACat3(x, y, z) ACat(ACat(x, y), z) #define ACat4(a, b, c, d) ACat(ACat(a, b), ACat(c, d)) #define autoPrint(x) ACat(autoPrint_, getTyp(x))(x) void autoPrint_int(int x) { printf("%d", x); } void autoPrint_double(double x) { printf("%f", x); } void autoPrint_String(char *x) { printf("%s", x); } #define getTyp(x) ACat(Typ_, x) #define Typ_i int #define Typ_d double #define Typ_s String