【发布时间】:2019-05-02 13:39:33
【问题描述】:
我正在阅读一个代码段,它检查 ppm 文件中的某些值是否正确。这些值是这样读取的:
image >> img_format >> width >> height >> maxval;
然后检查宽度和高度是否正确:
if (width != unsigned int(width) && height != unsigned int(height))
{
cerr << "Width and/or height of the image are missing." << endl;
exit(EXIT_FAILURE);
}
**width 和 height 被声明为 unsigned int
这种情况如何运作?
【问题讨论】:
-
除非您说明如何声明
width和height,否则此问题并不完整。 -
我想
if ( width < 0 )还不够晦涩难懂?有趣的是,它似乎是一种非法语法:stackoverflow.com/questions/40765232/… -
鉴于编辑“
width和height被声明为unsigned int”,对unsigned int的可疑函数转换似乎完全没有意义。这段代码的完整上下文和历史可能与这里发生的事情高度相关,因为看起来有人可能一直在试图验证输入。 -
来自stackoverflow.com/questions/2711522/… 即使语法是正确的,也不能保证如果它是负数就会不同。
-
“这种情况如何运作?”的答案是“它没有”,但我怀疑完整的答案需要包括原因。