编译器如何知道要返回的类型

时间:2015-12-31 10:57:10

标签: c++ c++14 auto type-deduction

This article说:

  

如果我在函数return 1.4中编写一行代码,我和编译器都明白该函数返回 double

对我来说并不明显:返回类型可以是float,double或long double。编译器如何在3种类型之间进行选择?

5 个答案:

答案 0 :(得分:3)

不,1.4doublefloat写为1.4f

75         // int
75u        // unsigned int
75l        // long
75ul       // unsigned long 
75lu       // unsigned long

3.14159L   // long double
6.02e23f   // float  

Source

答案 1 :(得分:3)

1.4是一个double字面值,而不是float字面值1.4flong double字面值1.4l

因此,编译器可以明确推断出类型。

答案 2 :(得分:2)

我猜你问的是auto返回类型扣除,否则返回类型就是你声明的那种。

答案很简单:文字1.4的类型为double,而不是floatlong double,因此会推断出double。很简单。

答案 3 :(得分:1)

因为1.4(或任何其他浮点数)是double。要使其成为float,您需要撰写1.4flong double1.4L

答案 4 :(得分:1)

这里

1.4 double ,任何简单的小数点都是 double

float 将为1.4f

long double 将为1.4L

1.4  // double
1.4f // float
1.4L // long double