GNU C提供的typeof操作符就可以。
比如:
float a;
typeof(a) b; //float类型
typeof('a') c; //int类型,因为C中的字符常量是int型(与C++不同,C++的字符常量是char型)
typeof(int *) d, e; //d和e都是int *类型
int *f, g; //f是int *类型,g是int类型