两个(类型)值和类型(值)有什么区别
what is the difference between the two (type)value and type(value)?
最近,我对这两个表达式感到困惑 - (type)value
和type(value)
。
例如:size_t c = size_t(-1); size_t c = (size_t)-1;
有什么区别?
前者
是C++,它通过调用构造函数进行直接初始化。
第二个是C(或C++),它正在做一个演员表。
所以,从C程序员的角度来看,有很多不同。
此外,这是一个非常糟糕的主意,因为size_t
是无符号类型。这应该使用 ssize_t
来完成,该 是有符号的,不需要强制转换。
在 C 中,只有一个是有效的表达式。
在C++中,它们是完全相同的,它们是编写显式转换表达式的两种替代形式:C 样式和函数样式。
相关文章:
- 基本类型与内置类型有什么区别C++
- C++指针中的这两种类型的值分配有什么区别?
- 为什么C++不允许两个同名的函数/类模板,区别仅在于非类型模板参数(整型)的类型?
- 无符号长整型和无符号 int 之间有什么区别,这 2 种类型应该如何在 c# 中封送?
- CRTP:为什么获得嵌套类型和派生类的嵌套方法有区别
- 类型测试对象的动态数组的这两个声明之间的区别?
- C++ 中的对象创建类型有什么区别?
- C++11中的自动类型扣除和类型转换有什么区别
- a、&a 和 &a[0] 之间的类型有什么区别?
- 将类类型成员定义为公共和私有之间有什么区别?
- 两种类型的定义构造函数有什么区别?第一个使用":",第二个用大括号(如函数)定义它
- 类型、value_type和element_type之间有什么区别,以及何时使用它们?
- 自动扣款和模板类型扣款有什么区别
- 抽象数据类型(ADT)和数据结构之间有什么区别
- C 中类型和类之间的区别
- 使用函数类型和函数指针作为C++模板函数参数的区别
- 整型非类型参数和非整型非类型参数的模板部分特化,g++和clang的区别
- VS c++和MinGW实现双重类型有什么区别
- 类型转换时C++ (void *) 变量和 (void *&) 变量有什么区别
- C++中的类型和名称有什么区别?