为什么 min() 给出奇怪的结果?

Why is min() giving bizarre results?

2013年Visual Studio在调试一个程序的时候,我发现了一些奇怪的事情。在我使用 min() 的一个表达式中,出现了奇怪的值。在 VS 的 Immediate Window 中,我尝试这样做:

min(W, H)
35 '#'
W
291
H
682

呃-什么??这是什么解释?

min 将其输入视为 chars。这就是为什么它在 35 旁边显示字符 '#' 的原因,因为 35 的 ascii 值是 #。您提供的数字超出了 char 的范围,因此它们正在换行。你真的在做 min(291%256, 682%256) 这是 min(35, 170) 这显然是 35.