gpt4 book ai didi

c++ - 编译器从 `long` 转换时,`double` 和 `int ` 相同

转载 作者:太空狗 更新时间:2023-10-29 21:15:31 25 4
gpt4 key购买 nike

我在研究c++中的函数重载,我在程序中看到了一个模棱两可的条件,

long add(long a){
long b = a;
return b;
}

double add(double a){
double b = a;
return b;
}

int main(){
int x;
x = add(10);
printf("x : %d", x);
getch();
return 0;
}

书中给出的歧义原因是,编译器可能会将 int 转换为 longdouble。所以编译器会产生一个错误。我运行它,结果相同,错误

那么 longdouble 如何等价?这里歧义的真正原因是什么?

最佳答案

不是longdouble本身等价,而是转换规则 int->longint->double 具有相同的优先级,因此编译器在同时存在这两个选项时会面临歧义。

关于c++ - 编译器从 `long` 转换时,`double` 和 `int ` 相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37564423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com