OpenCV - char vs. int

时间:2011-07-23 15:42:40

标签: c++ opencv char int

来自Learning OpenCV关于阅读AVI视频的书。

我输入的程序如下:

char c = cvWaitKey(33);
if (c == 27) break;

如您所见,c被定义为char。为什么if-statementcint进行比较?

而且,当我们收到此声明:char c = cvWaitKey(33);时,char返回的cvWaitKey(33);值会是什么?

感谢。

1 个答案:

答案 0 :(得分:4)

char只是介于-128和127之间的数字(如果是无符号,则为0到255),通常但并不总是代表ASCII字符代码。

如果整数文字落在有效的值范围内,编译器就没有问题隐式将整数文字转换为char,这就是if语句中发生的情况。

cvWaitKey函数返回按下的键的字符代码。 ASCII字符代码27碰巧对应于ESC键。

cvWaitKey(33)的参数是等待的毫秒数。每帧等待33ms(这是我期望发生的事情)意味着应用程序以30fps运行。