| IDA SDK

Variables
Derived type: complex
Type flags

## Detailed Description

## Variables
const type_t | BT_COMPLEX = 0x0D
| struct/union/enum/typedef. More...
const type_t | BTMT_STRUCT = 0x00
| struct: MCNT records: type_t; [sdacl-typeattrs];
const type_t | BTMT_UNION = 0x10
| union: MCNT records: type_t...
const type_t | BTMT_ENUM = 0x20
| enum: next byte bte_t (see below) N records: de delta(s) OR blocks (see below)
const type_t | BTMT_TYPEDEF = 0x30
| named reference always p_string name
const type_t | BT_BITFIELD = 0x0E
| bitfield (only in struct) ['bitmasked' enum see below] next byte is dt ((size in bits << 1) | (unsigned ? 1 : 0))
const type_t | BTMT_BFLDI8 = 0x00
| __int8
const type_t | BTMT_BFLDI16 = 0x10
| __int16
const type_t | BTMT_BFLDI32 = 0x20
| __int32
const type_t | BTMT_BFLDI64 = 0x30
| __int64

## Variable Documentation

## ◆ BT_COMPLEX

const type_t BT_COMPLEX = 0x0D

struct/union/enum/typedef.

format:

           [dt N (N=field count) if !BTMT_TYPEDEF]
           if N == 0:
             p_string name (unnamed types have names "anon_...")
             [sdacl-typeattrs];
           else, for struct & union:
             if N == 0x7FFE   // Support for high (i.e., > 4095) members count
               N = deserialize_de()
             ALPOW = N & 0x7
             MCNT = N >> 3
             if MCNT == 0
               empty struct
             if ALPOW == 0
               ALIGN = get_default_align()
             else
               ALIGN = (1 << (ALPOW - 1))
             [sdacl-typeattrs];
           else, for enums:
             if N == 0x7FFE   // Support for high enum entries count.
               N = deserialize_de()
             [tah-typeattrs];