Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
最近,我对这两个表达式感到困惑 -(type)value和type(value).
(type)value
type(value)
例如 : size_t c = size_t(-1); size_t c = (size_t)-1;
size_t c = size_t(-1); size_t c = (size_t)-1;
有什么不同?
前者是C++,它通过调用构造函数进行直接初始化。
第二个是C(或C++),它正在做一个演员。
因此,从 C 程序员的角度来看,存在很大差异。
此外,这是一个非常糟糕的主意,因为size_t它是无符号类型。这应该使用 来完成ssize_t,它已签名并消除了对演员表的需要。
size_t
ssize_t
在 C 中,只有其中一个是有效的表达式。
在 C++ 中,它们完全相同,它们是编写显式强制转换表达式的两种替代形式:C 风格和函数风格。