OpenCV - char против int - PullRequest
       10

OpenCV - char против int

1 голос
/ 23 июля 2011

В книге Learning OpenCV о чтении видео в формате AVI.

Программа, которую я набрал, выглядит следующим образом:

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

Как видите, c было определено как char. Почему if-statement сравнивает c с int?

И когда у нас есть это утверждение: char c = cvWaitKey(33);, что могло бы значение char вернуть cvWaitKey(33);?

Спасибо.

1 Ответ

4 голосов
/ 23 июля 2011

A char - это просто число от -128 до 127 (или от 0 до 255, если оно не подписано), обычно, но не всегда, представляющее код символа ASCII.

У компилятора нет проблемнеявное преобразование целочисленного литерала в char, если он попадает в допустимый диапазон значений, что и происходит в операторе if.

Функция cvWaitKey возвращает код символа ключа, которыйбыл нажат.Код символа ASCII 27 соответствует клавише ESC.

Параметр cvWaitKey (33) - это количество миллисекунд ожидания.Ожидание 33 мс на каждом кадре (что, как я ожидаю, происходит) означает, что приложение работает со скоростью 30 кадров в секунду.

...