7

以下是演员表:

int foo = (int) somefloat;

但是,这是否被视为演员表?

int foo = int( somefloat );

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

4

3 回答 3

5

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

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

C++ 函数样式转换的目的到底是什么?

于 2012-10-02T14:48:10.107 回答
2

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

于 2012-10-02T14:48:20.757 回答
1

是的,这也是一个演员表。C++ 支持这种类型的转换,C 只有(type)expression格式转换。它们是等价的。

于 2012-10-02T14:49:45.113 回答