编译报错:/usr/local/gcc-5.5/bits/stl_algobase.h:243:56: 错误:宏“min”传递了 3 个参数,但只需要 2 个

在添加头文件A.h后,编译出现错误,指出宏'min'传递了3个参数,而需要2个。头文件A.h中重定义了min,导致与标准库冲突。将A.h中min的定义更改为其他名称后,编译通过。然而,源代码中的其他min使用并未受到影响,如果移除A.h中min的定义,则会找不到min的定义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天给程序增加了几个其它库的头文件,结果编译的时候出现了一屏幕的报错,找到第一个报错的地方,提示min调用出错,像是重定义了,新增加的头文件A.h(暂时这么叫它)中的确有重新define了min,

#ifndef min
#define min(a,b) ((a)<(b)? a:b)
#endif

并且在这个头文件A.h中有使用,于是把这个地方define的min修改成其它名字编译就通过了。但是还有一点不明白的是,我的程序中.cpp也有使用min却对编译没有影响,并且如果我把A.h中对min的define去掉,再编译就会提示min找不到对应的定义。

附录:编译报错

/usr/local/gcc-5.5/bits/stl_algobase.h:243:56: 错误:宏“min”传递了 3 个参数,但只需要 2 个
     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
/usr/local/gcc-5.5/bits/stl_algobase.h: 在全局域:
/usr/local/gcc-5.5/bits/stl_algobase.h:195:5: 错误:expected unqualified-id before ‘const’
     min(const _Tp& __a, const _Tp& __b)
     ^
/usr/local/gcc-5.5/bits/stl_algobase.h:195:5: 错误:expected ‘)’ before ‘const’
/usr/local/gcc-5.5/bits/stl_algobase.h:195:5: 错误:expected ‘)’ before ‘const’
/usr/local/gcc-5.5/bits/stl_algobase.h:195:5: 错误:expected initializ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值