Файл src/arrayaccess.h


Макросы

#define GET_DATA_BIT(pdata, n)   ((*((l_uint32 *)(pdata) + ((n) >> 5)) >> (31 - ((n) & 31))) & 1)
#define SET_DATA_BIT(pdata, n)   (*((l_uint32 *)(pdata) + ((n) >> 5)) |= (0x80000000 >> ((n) & 31)))
#define CLEAR_DATA_BIT(pdata, n)   (*((l_uint32 *)(pdata) + ((n) >> 5)) &= ~(0x80000000 >> ((n) & 31)))
#define SET_DATA_BIT_VAL(pdata, n, val)
#define GET_DATA_DIBIT(pdata, n)   ((*((l_uint32 *)(pdata) + ((n) >> 4)) >> (2 * (15 - ((n) & 15)))) & 3)
#define SET_DATA_DIBIT(pdata, n, val)
#define CLEAR_DATA_DIBIT(pdata, n)   (*((l_uint32 *)(pdata) + ((n) >> 4)) &= ~(0xc0000000 >> (2 * ((n) & 15))))
#define GET_DATA_QBIT(pdata, n)   ((*((l_uint32 *)(pdata) + ((n) >> 3)) >> (4 * (7 - ((n) & 7)))) & 0xf)
#define SET_DATA_QBIT(pdata, n, val)
#define CLEAR_DATA_QBIT(pdata, n)   (*((l_uint32 *)(pdata) + ((n) >> 3)) &= ~(0xf0000000 >> (4 * ((n) & 7))))
#define GET_DATA_BYTE(pdata, n)   (*(l_uint8 *)((l_uintptr_t)((l_uint8 *)(pdata) + (n)) ^ 3))
#define SET_DATA_BYTE(pdata, n, val)   (*(l_uint8 *)((l_uintptr_t)((l_uint8 *)(pdata) + (n)) ^ 3) = (val))
#define GET_DATA_TWO_BYTES(pdata, n)   (*(l_uint16 *)((l_uintptr_t)((l_uint16 *)(pdata) + (n)) ^ 2))
#define SET_DATA_TWO_BYTES(pdata, n, val)   (*(l_uint16 *)((l_uintptr_t)((l_uint16 *)(pdata) + (n)) ^ 2) = (val))
#define GET_DATA_FOUR_BYTES(pdata, n)   (*((l_uint32 *)(pdata) + (n)))
#define SET_DATA_FOUR_BYTES(pdata, n, val)   (*((l_uint32 *)(pdata) + (n)) = (val))

Макросы

#define CLEAR_DATA_BIT ( pdata,
 )     (*((l_uint32 *)(pdata) + ((n) >> 5)) &= ~(0x80000000 >> ((n) & 31)))

#define CLEAR_DATA_DIBIT ( pdata,
 )     (*((l_uint32 *)(pdata) + ((n) >> 4)) &= ~(0xc0000000 >> (2 * ((n) & 15))))

#define CLEAR_DATA_QBIT ( pdata,
 )     (*((l_uint32 *)(pdata) + ((n) >> 3)) &= ~(0xf0000000 >> (4 * ((n) & 7))))

#define GET_DATA_BIT ( pdata,
 )     ((*((l_uint32 *)(pdata) + ((n) >> 5)) >> (31 - ((n) & 31))) & 1)

#define GET_DATA_BYTE ( pdata,
 )     (*(l_uint8 *)((l_uintptr_t)((l_uint8 *)(pdata) + (n)) ^ 3))

#define GET_DATA_DIBIT ( pdata,
 )     ((*((l_uint32 *)(pdata) + ((n) >> 4)) >> (2 * (15 - ((n) & 15)))) & 3)

#define GET_DATA_FOUR_BYTES ( pdata,
 )     (*((l_uint32 *)(pdata) + (n)))

#define GET_DATA_QBIT ( pdata,
 )     ((*((l_uint32 *)(pdata) + ((n) >> 3)) >> (4 * (7 - ((n) & 7)))) & 0xf)

#define GET_DATA_TWO_BYTES ( pdata,
 )     (*(l_uint16 *)((l_uintptr_t)((l_uint16 *)(pdata) + (n)) ^ 2))

#define SET_DATA_BIT ( pdata,
 )     (*((l_uint32 *)(pdata) + ((n) >> 5)) |= (0x80000000 >> ((n) & 31)))

#define SET_DATA_BIT_VAL ( pdata,
n,
val   ) 

Макроопределение:

({l_uint32 *_TEMP_WORD_PTR_; \
     _TEMP_WORD_PTR_ = (l_uint32 *)(pdata) + ((n) >> 5); \
     *_TEMP_WORD_PTR_ &= ~(0x80000000 >> ((n) & 31)); \
     *_TEMP_WORD_PTR_ |= ((val) << (31 - ((n) & 31))); \
    })

#define SET_DATA_BYTE ( pdata,
n,
val   )     (*(l_uint8 *)((l_uintptr_t)((l_uint8 *)(pdata) + (n)) ^ 3) = (val))

#define SET_DATA_DIBIT ( pdata,
n,
val   ) 

Макроопределение:

({l_uint32 *_TEMP_WORD_PTR_; \
     _TEMP_WORD_PTR_ = (l_uint32 *)(pdata) + ((n) >> 4); \
     *_TEMP_WORD_PTR_ &= ~(0xc0000000 >> (2 * ((n) & 15))); \
     *_TEMP_WORD_PTR_ |= ((val) << (30 - 2 * ((n) & 15))); \
    })

#define SET_DATA_FOUR_BYTES ( pdata,
n,
val   )     (*((l_uint32 *)(pdata) + (n)) = (val))

#define SET_DATA_QBIT ( pdata,
n,
val   ) 

Макроопределение:

({l_uint32 *_TEMP_WORD_PTR_; \
     _TEMP_WORD_PTR_ = (l_uint32 *)(pdata) + ((n) >> 3); \
     *_TEMP_WORD_PTR_ &= ~(0xf0000000 >> (4 * ((n) & 7))); \
     *_TEMP_WORD_PTR_ |= ((val) << (28 - 4 * ((n) & 7))); \
    })

#define SET_DATA_TWO_BYTES ( pdata,
n,
val   )     (*(l_uint16 *)((l_uintptr_t)((l_uint16 *)(pdata) + (n)) ^ 2) = (val))


Документация по Leptonica. Последние изменения: Fri Aug 7 20:31:35 2009. Создано системой  doxygen 1.5.9