|
| 10.1.isc_vax_integer()Изменяет порядок байт целого числа. Синтакс ISC_LONGisc_vax_integer(char *buffer,short length);
Параметр Тип Описание buffer char * Указатель на целое число для конвертации length short Длина в байтах целого числа для конвертации Может быть 1,2 или 4 Описание isc_vax_integer() меняет порядок байт целого числа находящегося в буфере и возвращает новое значение. Обычное применение этой функции это преобразование целочисленных значений, переданных в буфер параметров базы данных к формату, где самый младший байт должен быть первым и самый старший байт последним. В InterBase целочисленные значения должны быть представлены во буферах параметров ввода(например, DPB) и возвращены в буферах результатов в универсальном формате, где самый младший байт первый, и самый старший байт последний. Isc_vax_integer () используется, чтобы преобразовать целые числа к универсальному формату и обратно. 10.1.1.ПримерСледующий фрагмент кода преобразовывает2-байтовое значение, хранимое в символьном буфере, который является буфером результатов, возвращенным функцией типа isc_database_info (): #include <ibase.h> char *p; . . . for(p = res_buffer; *p != isc_info_end;) { /* Чтение типа элемента следующего кластера в буфере результатов */ item= *p++; /* Читает длину следующего значения в буфере результатов и преобразовывает его. */ len = isc_vax_integer(p, 2); p+= len; /* Теперь обработайте настоящее значение размером len байт. */ . . . }
Возвращаемое значение isc_vax_integer () всегда возвращает полностью измененное побайтно длинное целочисленное значение. Комментарий переводчика: Если в буфере расположено число0x00 0x04 0x00 x00, длиной 4байта, p –указатель на символьный буфер этого числа, то соответствующий вызов isc_vax_integer(p, 4) даст ответ 1024.
|
Дизайн: Piton Alien |