pet*_*555 -1 c++ type-conversion c++11
我想知道转换是否像:
int to long
int to long long
long to int
long long to int
long long to long
long to long long
和
long double to double
double to long double
(类似于未签名的)是昂贵的操作.我们应该担心转换并定义适当的分配类型吗?(当然存在丢失精度的风险,但我不写它.我在询问性能).
例如,如果我确定该号码可以存储在int类型中.我必须在功能中分配一些东西,如:void writeToX(long long& x).
传递给函数long long x而不是重要int x吗?
您应该始终努力避免类型转换,因为它们通常表示编程风格较差.
这与转换操作的费用无关,但请注意,您列出的某些转换 - 特别是浮点数到整数类型 - 并不是特别便宜.
在C++中,转换为无法保存值的类型的行为通常是未定义的.因此,通常需要通过大小检查来实现安全转换,这只会增加费用.