Leptonica  1.54
Файл arrayaccess.h

Макросы

#define USE_INLINE_ACCESSORS   1
 
#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))
 

Макросы

◆ CLEAR_DATA_BIT

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

◆ CLEAR_DATA_DIBIT

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

◆ CLEAR_DATA_QBIT

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

◆ GET_DATA_BIT

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

◆ GET_DATA_BYTE

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

◆ GET_DATA_DIBIT

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

◆ GET_DATA_FOUR_BYTES

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

◆ GET_DATA_QBIT

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

◆ GET_DATA_TWO_BYTES

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

◆ SET_DATA_BIT

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

◆ SET_DATA_BIT_VAL

#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))); \
})
unsigned int l_uint32
Definition: environ.h:168

◆ SET_DATA_BYTE

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

◆ SET_DATA_DIBIT

#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) & 3) << (30 - 2 * ((n) & 15))); \
})
unsigned int l_uint32
Definition: environ.h:168

◆ SET_DATA_FOUR_BYTES

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

◆ SET_DATA_QBIT

#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) & 15) << (28 - 4 * ((n) & 7))); \
})
unsigned int l_uint32
Definition: environ.h:168

◆ SET_DATA_TWO_BYTES

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

◆ USE_INLINE_ACCESSORS

#define USE_INLINE_ACCESSORS   1