gpt4 book ai didi

c++ - 为什么要定义此代码实现的输出?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:03:37 26 4
gpt4 key购买 nike

考虑以下两个函数重载:

int foo(int a)
{
return 20;
}

const char foo(double b)
{
return -3;
}

int x = foo(6.0);
cout << x;

为什么这个例子的结果取决于具体的编译器或平台?

根据 ISO/IEC 14882:1998 编制。

最佳答案

函数重载是一个转移注意力的问题;将在所有平台上选择重载 char foo(double)

主要区别在于 char 类型本身:标准允许它是有符号的或无符号的。选择哪一个是实现定义的。

在具有无符号 char 的系统上,该函数将因此返回正数 CHAR_MAX - 2(作为 char(-3)).

关于c++ - 为什么要定义此代码实现的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50742570/

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