c++ - (type)value 和 type(value) 这两个有什么区别?

标签 c++ c

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

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

有什么区别?

最佳答案

前者是C++,它在做direct initialization通过调用构造函数。

第二个是 C(或 C++),它正在执行转换。

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

另外,这是一个非常糟糕的主意,因为 size_t 是一个无符号类型。这应该使用 ssize_t 完成,它已签名并消除了强制转换的需要。

关于c++ - (type)value 和 type(value) 这两个有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14499436/

相关文章:

java - 在 Android 项目中保护类文件

c++ - 使用 Visual Studio 进行可重现的构建 - 目标文件差异

c - 数组排序C,正确吗?

c - ncurses:警告:取消引用 ‘void *’ 指针

c - 在另一个文件中定义的函数是否需要 extern?

c - 从文件中扫描一个 int 数组

C++ 命名空间和头文件

c++ pthreads和struct的损坏数据

c++ - 根据 C++ 标准在宏定义中推送/弹出宏时的行为是什么

c - MPI_Reduce 数组表示十进制值 (C)