long long to int和int to long long conversion

时间:2016-10-21 10:55:48

标签: c++ c++11 type-conversion

我想知道转换是否像:

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是否很重要?

1 个答案:

答案 0 :(得分:5)

您应该始终努力避免类型转换,因为它们通常表示编程风格较差。

这与转换操作的费用无关,但请注意,您列出的某些转换 - 特别是浮点数到整数类型 - 并不是特别便宜。

在C ++中,转换为无法保存值的类型的行为通常是未定义的。因此,安全转换通常需要通过大小检查来实现,这只会增加费用。