首页 > 后端开发 > C++ > C 转换中 (type)value 和 type(value) 之间有什么区别(如果有)?

C 转换中 (type)value 和 type(value) 之间有什么区别(如果有)?

Susan Sarandon
发布: 2024-11-21 05:43:10
原创
242 人浏览过

What are the differences, if any, between (type)value and type(value) in C   casting?

理解 C 中 (type)value 和 type(value) 的细微差别

在 C 中,显式类型转换存在两种不同的语法:(类型)值和类型(值)。这种区别提出了一个问题:这两个表达式之间有什么区别(如果有的话)?

简单转换没有区别

根据 C 标准(第 5.2 节) .3),当简单类型说明符后跟括在括号中的单个表达式时,结果表达式根据给定创建指定类型的值表达式。

(type)value 和 type(value) 的等价

对于单个表达式,(type)value 在两个定义中等同于 type(value)和意义。这意味着将单个值转换为指定类型时,这两个表达式绝对没有区别。

多个值的差异

但是,出现了细微的差异当转换以逗号分隔的值列表时。在这种情况下,如果指定的类型是具有适当声明的构造函数的类,则 type(x1, x2, ...) 相当于使用给定值创建 T 类型的临时变量 t 并将 t 的值赋给表达式。

类型名称限制

作为附加说明,有些类型名称不能使用 type(value) 语法被使用。例如,虽然 (char )string 有效,但 char (string) 将编译失败。但是,如果使用 typedef 对类型进行别名,则可以将 type(value) 语法与别名一起使用。

以上是C 转换中 (type)value 和 type(value) 之间有什么区别(如果有)?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板