gpt4 book ai didi

c++ - 使用 g++ 进行奇怪的零初始化

转载 作者:IT老高 更新时间:2023-10-28 21:49:34 24 4
gpt4 key购买 nike

我在使用 g++ 4.4.3 对整数进行初始化时遇到了以下代码的奇怪行为。

  int main()

{

int x(int());

int y = int();

cout << x << " " << y << endl;
}

结果是:

1 0

“y”的值如预期的那样是0,但是x的值却是奇怪的“1”!

在 VS2008 上产生以下链接错误(函数声明,但没有定义):

unresolved external symbol "int __cdecl x(int (__cdecl*)(void))"

谁能解释一下 g++ 的这种奇怪行为?

最佳答案

int x(int()); 被解析为函数声明。

它声明了一个名为 x 的函数,返回一个 int 并接受一个参数,该参数具有返回 int 的函数类型和不接受任何参数。

这被称为最令人头疼的解析。

关于c++ - 使用 g++ 进行奇怪的零初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5815236/

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