Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Поясните код / 2 сообщений из 2, страница 1 из 1
19.08.2014, 11:52
    #38723273
iStrannik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поясните код
Разбираюсь с одним SDK на C++ (сам программирую на Delphi) поэтому прошу помощи разъясните
как работает этот код:

Объявлен тип:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
#ifndef _UINTPTR_T_DEFINED
#ifdef  _WIN64
typedef unsigned __int64    uintptr_t;
#else
typedef _W64 unsigned int  uintptr_t;
#endif
#define _UINTPTR_T_DEFINED
#endif


    /** \brief Camera handle type */
    typedef uintptr_t camera_t;



Объявление переменной
Код: plaintext
1.
camera_t cam;



Потом в примере я вижу такой вызов
Код: plaintext
1.
BAD_HANDLE(cam, "couldn't create camera", cam, 0)



где BAD_HANDLE:

Код: plaintext
1.
2.
3.
4.
5.
#define BAD_HANDLE(h, msg, cam, grabber)     \
	if((h) == IVP_E_INVALID_HANDLE) {        \
		printf("FAILURE <<< %s >>>\n", msg); \
		close_down(-1, (cam), (grabber));    \
	}


где IVP_E_INVALID_HANDLE объявлена как
Код: plaintext
1.
#define IVP_E_INVALID_HANDLE   -1



Вот я не могу понять h - беззнаковая, а сравнение в условии с IVP_E_INVALID_HANDLE = -1 как такое может быть
и что означает h - в круглых скобках?
...
Рейтинг: 0 / 0
19.08.2014, 12:09
    #38723309
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поясните код
iStrannikВот я не могу понять h - беззнаковая, а сравнение в условии с
IVP_E_INVALID_HANDLE = -1 как такое может быть и что означает h - в круглых скобках?

При сравнении один тип будет приведён к другому, так что это просто 64 бита. Создатель
говногода не заботился о предупреждениях компилятора.

Круглые скобки там на случай, если в этот макрос будут передавать выражение.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Поясните код / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]