首先确定你的min和max是标准库里面的,因为Win32头文件windef.h中,也定义了min和max,而windef中的是宏,不是函数.如果是宏的话,你这么复杂的表达式嵌套就可能出现问题.
如果是在Windows工程中,你可以把min和max换成_MIN和_MAX试试,这俩一般情况下代表C++库中的min和max.
下来你可以在每个参数前面都加上适当的cast试试,防止模版推导错误.不过我觉得这里不会推导错误才是.
C++中的min和max函数的问题.
C++中的min和max函数的问题.
写过如下一个表达式:
DWORD dwMilliseconds = min(max(0,(int)(1000*(fT1 - 0.05f + fT2))),20);
结果某些情况下,dwMilliseconds会等于0xFFFFFFFF,谁能告诉我这是为什么?我有max限制,使得返回值不会为负数,又有min限制,使得返回值不大于20,怎么会有0xFFFFFFFF的出现呢?
写过如下一个表达式:
DWORD dwMilliseconds = min(max(0,(int)(1000*(fT1 - 0.05f + fT2))),20);
结果某些情况下,dwMilliseconds会等于0xFFFFFFFF,谁能告诉我这是为什么?我有max限制,使得返回值不会为负数,又有min限制,使得返回值不大于20,怎么会有0xFFFFFFFF的出现呢?
其他人气:556 ℃时间:2019-10-09 11:41:17
优质解答
我来回答
类似推荐
猜你喜欢
- 1Sam Brown is my uncle.I call him____.
- 2平形四边形的周长怎么求
- 3已知函数f(x)=|lnx|,若f(a)=f(4a),则实数a=
- 4在100以类的质数中,把个位与十位上的数字交换位置后,仍是质数的数有?
- 5两列数2、4、6、8…2006和7、10、13…2008,其中相同数的个数是?
- 6一辆客车从甲地开往乙地要3小时,一辆货车从乙地开往甲地要5小时,两车同时从两地相向开出,几小时相遇?
- 71欧和10欧的两个电阻并联,等效电阻为R1,阻值1欧,10欧,100欧的电阻并联,其等效电阻为R2.比较R1R2的大小.
- 8左边一个,稼字的左边偏旁有边一个墙的右边偏旁念什么
- 9在平行四边形ABCD中,AD=3,AB=5,平行四边形ABCD的面积是10,P是AB上一点,PQ平行于AD交BD于Q,若AP=四分之一的BP.求四边形PBCQ的面积.
- 10定义在R上的任意函数f(x)都可以表示成一个奇函数g(x)与一个偶函数h(x)之和,如果f(x)=lg(10的x次+1),x