【发布时间】:2019-12-30 16:36:28
【问题描述】:
如何了解函数调用中的转化和促销?
在我之前的question 中,关于为什么调用一些函数,尽管其他函数也可能被调用,我想强调三个关键字:conversions,促销,完美匹配。
-
完美匹配是最简单的:
-
int fun(int a)使用声明为int x;的变量调用 -
int fun(float a, double b)使用声明的变量调用float x;double y; -
int fun(char a, string s)使用声明的变量调用char x;string y - ...等
-
-
对于转化和促销,我只想提一下:
Numeric conversions:与促销不同,数字转换可能会更改值,并可能会损失精度。
Numeric promotions:从较小的类型转换为较大的相同类型(例如 char 到 int),但不会丢失任何内容
这里是不那么简单的部分。 我希望有人解释一下您在分析函数参数时需要思考的方式,以应对不同的调用情况:
-
int fun(double a)与float x对比int fun (float a)与double x调用
我想实际看一些例子,因为对于初学者来说,cpp 的引用并不容易理解。
【问题讨论】:
-
我希望看到一些示例,例如
function prototype和variables以及函数被调用。然后简要解释一下您的看法(例如,这里是转换,因为 X 和 Y,还有促销,因为那是 W 和 Z)
标签: c++ type-conversion integer-promotion