C++中的min和max函数的问题.写过如下一个表达式:DWORD dwMilliseconds = min(max(0,(int)(1000*(fT1 - 0.05f + fT2))),20);结果某些情况下,dwMilliseconds会等于0xFFFFFFFF,谁能告诉我这是为什么?我有max限制,使得返回
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/15 00:24:26
![C++中的min和max函数的问题.写过如下一个表达式:DWORD dwMilliseconds = min(max(0,(int)(1000*(fT1 - 0.05f + fT2))),20);结果某些情况下,dwMilliseconds会等于0xFFFFFFFF,谁能告诉我这是为什么?我有max限制,使得返回](/uploads/image/z/1727147-11-7.jpg?t=C%2B%2B%E4%B8%AD%E7%9A%84min%E5%92%8Cmax%E5%87%BD%E6%95%B0%E7%9A%84%E9%97%AE%E9%A2%98.%E5%86%99%E8%BF%87%E5%A6%82%E4%B8%8B%E4%B8%80%E4%B8%AA%E8%A1%A8%E8%BE%BE%E5%BC%8F%EF%BC%9ADWORD+dwMilliseconds+%3D+min%28max%280%2C%28int%29%281000%2A%28fT1+-+0.05f+%2B+fT2%29%29%29%2C20%29%3B%E7%BB%93%E6%9E%9C%E6%9F%90%E4%BA%9B%E6%83%85%E5%86%B5%E4%B8%8B%2CdwMilliseconds%E4%BC%9A%E7%AD%89%E4%BA%8E0xFFFFFFFF%2C%E8%B0%81%E8%83%BD%E5%91%8A%E8%AF%89%E6%88%91%E8%BF%99%E6%98%AF%E4%B8%BA%E4%BB%80%E4%B9%88%3F%E6%88%91%E6%9C%89max%E9%99%90%E5%88%B6%2C%E4%BD%BF%E5%BE%97%E8%BF%94%E5%9B%9E)
C++中的min和max函数的问题.写过如下一个表达式:DWORD dwMilliseconds = min(max(0,(int)(1000*(fT1 - 0.05f + fT2))),20);结果某些情况下,dwMilliseconds会等于0xFFFFFFFF,谁能告诉我这是为什么?我有max限制,使得返回
C++中的min和max函数的问题.
写过如下一个表达式:
DWORD dwMilliseconds = min(max(0,(int)(1000*(fT1 - 0.05f + fT2))),20);
结果某些情况下,dwMilliseconds会等于0xFFFFFFFF,谁能告诉我这是为什么?我有max限制,使得返回值不会为负数,又有min限制,使得返回值不大于20,怎么会有0xFFFFFFFF的出现呢?
C++中的min和max函数的问题.写过如下一个表达式:DWORD dwMilliseconds = min(max(0,(int)(1000*(fT1 - 0.05f + fT2))),20);结果某些情况下,dwMilliseconds会等于0xFFFFFFFF,谁能告诉我这是为什么?我有max限制,使得返回
首先确定你的min和max是标准库里面的,因为Win32头文件windef.h中,也定义了min和max,而windef中的是宏,不是函数.如果是宏的话,你这么复杂的表达式嵌套就可能出现问题.
如果是在Windows工程中,你可以把min和max换成_MIN和_MAX试试,这俩一般情况下代表C++库中的min和max.
下来你可以在每个参数前面都加上适当的cast试试,防止模版推导错误.不过我觉得这里不会推导错误才是.