以下是演员:
int foo = (int) somefloat;
然而,这被视为演员吗?
int foo = int( somefloat );
更重要的是,如果两者之间存在差异,那么得到的编译代码会不同吗?
答案 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
格式转换。它们是等价的。