T(x)被视为演职员吗?

时间:2012-10-02 14:46:08

标签: c++ casting

以下是演员:

int foo = (int) somefloat;

然而,这被视为演员吗?

int foo = int( somefloat );

更重要的是,如果两者之间存在差异,那么得到的编译代码会不同吗?

3 个答案:

答案 0 :(得分:5)

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

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

What exactly is or was the purpose of C++ function-style casts?

答案 1 :(得分:2)

结果没有区别,但是只有第一个例子可以在C中使用。在C ++中你可以使用两者。

答案 2 :(得分:1)

是的,这也是演员。 C ++启用了这种类型的转换,C只有(type)expression格式转换。它们是等价的。