摘自Learning OpenCV
关于阅读AVI视频的书
我输入的程序如下:
char c = cvWaitKey(33);
if (c == 27) break;
可以看出,c
被定义为char
。为什么if-statement
比较c
和int
?
并且,当我们有这个语句:char c = cvWaitKey(33);
时,cvWaitKey(33);
返回的char
值是多少?
谢谢。
char
只是一个介于-128和127之间的数字(如果是无符号的,则为0和255),通常(但不总是)表示ASCII字符代码。
编译器在将整数字面值隐式转换为char
时没有问题,如果它在有效值范围内,这就是if
语句中发生的情况。
cvWaitKey
函数返回被按下的键的字符代码。ASCII字符码27恰好对应于ESC键。
cvWaitKey
的参数(33)是等待的毫秒数。每帧等待33ms(这是我所期望的)意味着应用程序以30fps的速度运行。