ISO/IEC 9899:2011 条款6.5.4——投射操作符

6.5.4 投射操作符


语法

1、cast-expression:

        unary-expression

        (    type-name    )    cast-expression

约束

2、除非类型名指定了一个void类型,否则该类型名应该指定原子的、限定的,或非限定的标量类型,并且操作数应该具有标量类型。

3、涉及到指针的转换,而不是由6.5.16.1所允许的限制,应该用一个显式的投射来指定。

4、一个指针类型不应该被转换为任一浮点类型。一个浮点类型不应该被转换为任一指针类型。

语义

5、在一个用圆括号括起来的类型名之前的一个表达式将表达式的值转换为命名的类型。这个构造被称为一个投射。[注:一个投射并不产生一个左值。从而,对一个限定类型的一个投射与对此类型的非限定版本的投射具有相同效果。]

6、如果,由通过投射所命名的类型,用比所需要的更大范围和精度来表示表达式的值,那么投射指定了一个转换,即使该表达是的类型与命名类型相同,并移除任一额外的范围和精度。

原文地址:https://www.cnblogs.com/zenny-chen/p/4853225.html