T(x) 是否被视为强制转换

Is T(x) considered a cast?

本文关键字:转换 是否      更新时间:2023-10-16

以下是演员表:

int foo = (int) somefloat;

但是,这算不算演员阵容?

int foo = int( somefloat );

更重要的是,如果两者之间存在差异,则生成的编译代码是否不同?

第二个示例通常称为函数样式转换,并已添加到C++但两者在语义/目标代码方面没有区别。

以下是添加函数样式转换的原因的一个很好的解释:

C++函数式强制转换的目的究竟是什么?

结果没有区别,但是在 C 中只能使用第一个示例。在C++中,您可以同时使用两者。

是的,这也是一个演员表。C++启用这种转换样式,C 语言只有(type)expression格式转换。它们是等效的。