不是C语言本身的关键词或运算符(是C标准定义的运算符),它是GCC的一个扩展,作用正如其字面意思,用某种已有东西(变量、函数等)的类型去定义新的变量类型。
通常用于宏定义中,一些示例用法如下:
可以看到,中可以是任何有类型的东西,变量就是其本身的类型,函数是它返回值的类型。一般用于声明变量,如:
不过,这也不是绝对的,从语法上来说,所有可以出现基本类型关键词的地方都可以使用,比如这样的用法,虽然这里的是多余的,不过它是符合语法的。
再来看一些高级用法:
可以看到,还可以用来定义函数指针等,且是定义了两个指针变量。
最后指出一些需要注意的问题。是在编译时处理的,故其中的表达式在运行时是不会被执行的,比如,函数是不会被执行的,只是在编译时分析得到了的返回值而已。还有一些局限性,其中的变量是不能包含存储类说明符的,如、这类都是不行的。
参考资料:
6.6 Referring to a Type with typeof
GCC扩展关键字typeof学习笔记
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/9620.html