gpt4 book ai didi

c++ - 函数返回引用不适用于 window.h

转载 作者:搜寻专家 更新时间:2023-10-31 00:39:29 27 4
gpt4 key购买 nike

1: #include <windows.h>

2: int& max(int& a, int& b)
3: {
4: return a > b ? a : b;
5: }

6: int main()
7: {
8: return 0;
9: }

Visual Studio 2008 Express Edition 喊话:

1>e:...\main.cpp(2) : error C2062: 类型 'int' 意外

1>e:...\main.cpp(2) : error C2062: 类型 'int' 意外

1>e:...\main.cpp(2):错误 C2059:语法错误:')'

1>e:...\main.cpp(3):错误 C2143:语法错误:缺少“;”在“{”之前

1>e:...\main.cpp(3) : error C2447: '{' : 缺少函数头(旧式正式列表?)

如果我用 stdio.h 或 iostream 替换 windows.h(或者如果我删除它),它似乎可以工作

这是为什么?

最佳答案

#include <windows.h>

#undef min
#undef max

int & max(int& a, int& b)
{
return a > b ? a : b;
}
int main()
{
return 0;
}

<windows.h>max 定义宏和 min这会干扰你的。

其他方式

  • 重命名您的函数。

  • 使用 NOMINMAX .这是推荐使用一些自己定义最小值和最大值的 STL header 的常见解决方案。

    #define NOMINMAX
    #include <windows.h>

关于c++ - 函数返回引用不适用于 window.h,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16133265/

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