来自Learning OpenCV
关于阅读AVI视频的书。
我输入的程序如下:
char c = cvWaitKey(33);
if (c == 27) break;
如您所见,c
被定义为char
。为什么if-statement
将c
与int
进行比较?
而且,当我们收到此声明:char c = cvWaitKey(33);
时,char
返回的cvWaitKey(33);
值会是什么?
感谢。
答案 0 :(得分:4)
char
只是介于-128和127之间的数字(如果是无符号,则为0到255),通常但并不总是代表ASCII字符代码。
如果整数文字落在有效的值范围内,编译器就没有问题隐式将整数文字转换为char
,这就是if
语句中发生的情况。
cvWaitKey
函数返回按下的键的字符代码。 ASCII字符代码27碰巧对应于ESC键。
cvWaitKey
(33)的参数是等待的毫秒数。每帧等待33ms(这是我期望发生的事情)意味着应用程序以30fps运行。