两个(类型)值和类型(值)有什么区别

what is the difference between the two (type)value and type(value)?

本文关键字:类型 区别 什么 两个      更新时间:2023-10-16

最近,我对这两个表达式感到困惑 - (type)valuetype(value)

例如:size_t c = size_t(-1); size_t c = (size_t)-1;

有什么区别?

前者

是C++,它通过调用构造函数进行直接初始化。

第二个是C(或C++),它正在做一个演员表。

所以,从C程序员的角度来看,有很多不同。

此外,这是一个非常糟糕的主意,因为size_t是无符号类型。这应该使用 ssize_t 来完成,该 是有符号的,不需要强制转换。

在 C 中,只有一个是有效的表达式。

在C++中,它们是完全相同的,它们是编写显式转换表达式的两种替代形式:C 样式和函数样式。