题目
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的出现呢?
提问时间:2020-06-10
答案
首先确定你的min和max是标准库里面的,因为Win32头文件windef.h中,也定义了min和max,而windef中的是宏,不是函数.如果是宏的话,你这么复杂的表达式嵌套就可能出现问题.
如果是在Windows工程中,你可以把min和max换成_MIN和_MAX试试,这俩一般情况下代表C++库中的min和max.
下来你可以在每个参数前面都加上适当的cast试试,防止模版推导错误.不过我觉得这里不会推导错误才是.
如果是在Windows工程中,你可以把min和max换成_MIN和_MAX试试,这俩一般情况下代表C++库中的min和max.
下来你可以在每个参数前面都加上适当的cast试试,防止模版推导错误.不过我觉得这里不会推导错误才是.
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
最新试题
- 1请教will,be going to,be to的区别?
- 2e c a n d组成什么单词?
- 3如图,三角形ABC沿BC方向平移得到三角形DEF,CE=2,EF=5,则平移的距离是
- 422.86*15.24CM是什么意思没概念
- 5知道圆弧的半径和弦长,求该弦长对应的弧长.
- 6登幽州台歌是什么体诗歌
- 7谁能告诉我老师的办公室去哪儿的英语翻译
- 8The car accident happened at _______crossroads a few metres away from_______bank.选择一项:
- 9微积分1 多元函数极值问题
- 10以数列{an}的任意相邻的两项为坐标的点Pn(an,an+1)均在一次函数y=2x+k的图象上,数列{bn}满足条件:bn=an+1-an(b1不等于0),求证{bn}是等比数列
热门考点
- 1求过点(3,-4根号2),(9/4,5)的双曲线的标准方程,
- 24/7 X- 12 :3/7 X+12 = 2 :
- 3平方哩和平方米有什么区别
- 4每月用电不超过100千瓦时按每千瓦时0.52元收费;每月用电超过100千瓦时按每千瓦时0.6·····看↓(下)
- 5函数y=2/2+sinx的值域
- 6和四面八方一个类型的词语
- 7高一英语模块二Unit2Reading短语和句型
- 82013÷2013又2014分之2013+2015分之1 2013分之7÷1.6+2013分之5×8分之1 49.5×10.6-(50-2分之1)×5分之3
- 9人教版初一数学上册习题3.2拓广探索11题
- 10某班50人参加数学测试,试卷上有5道题,全班共错了23道,这个班的学生解题的正确率是多少?