获取一个表达式的数据类型的其中一种办法,是使用typeof。
拓展:
使用关键字typeof,语法上类似于sizeof,而语义上类似于typedef。
有两种方法给这个关键字传参,一种是传递表达式,一种是传递数据类型。下面是获取一个表达式的类型的例子:
typeof( x[0](1) );
这里假设x是一个函数指针数组,数组里面的指针指向某些函数,typeof将获取这些函数调用之后所返回的数据类型。
下面是一个以数据类型作为参数的例子:
typeof(int *);
这里所描述的就是一个指向整型的指针。
另外注意,如果你编写的代码需要兼容ISO-C的话,你得使用__typeof__来替代typeof。在任何可以使用typedef的地方,你都可以使用typeof,比如在一个声明语句中,在类型转换中,在sizeof中甚至在typeof中。