Разбираюсь с одним SDK на C++ (сам программирую на Delphi) поэтому прошу помощи разъясните
как работает этот код:
Объявлен тип:
#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;
Объявление переменной
camera_t cam;
Потом в примере я вижу такой вызов
BAD_HANDLE(cam, "couldn't create camera", cam, 0)
где BAD_HANDLE:
#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 объявлена как
#define IVP_E_INVALID_HANDLE -1
Вот я не могу понять h - беззнаковая, а сравнение в условии с IVP_E_INVALID_HANDLE = -1 как такое может быть
и что означает h - в круглых скобках?