FlexHEX Editor - Just the Right Tool to Edit Binaries

Introduction

Files and Drives

Inspecting Data

Editing Data

Navigation

Search and Replace

Tools

Complex Data Types

Loading and Mapping

Editing Structured Data

Structure Definition

Structures

Unions

Arrays

Strings

Enumerations

Bit Structures

Basic Types

Special Fields

Advanced Features


 

 

Enumerations

An enumeration is an integer field, whose possible values consists of a set of named integer constants.

enum BOOL { FALSE, TRUE };

This declaration introduces a type BOOL, which can accept values 0 (FALSE) and 1 (TRUE).

The enumeration declaration may be preceded by a size specifier, which is one of the keywords byte, word, dword, or qword. If the size keyword is omitted, FlexHEX assumes the size is 32-bit, so the above definition is equivalent to

dword enum BOOL { FALSE, TRUE };

You can assign numeric values explicitly:

enum BOOL { TRUE=1, FALSE=0 };

Numbers are decimal; in order to specify a hexadecimal value use the C-style notation:

byte enum MEDIA_TYPE { Floppy_35_144   = 0xF0,
                       Floppy_525_12   = 0xF9,
                       Floppy_525_180  = 0xFC,
                       Floppy_525_360  = 0xFD,
                       Floppy_525_160  = 0xFE,
                       Floppy_525_320  = 0xFF,
                       Hard_Disk       = 0xF8 };

Anonymous Enumerations

It is not necessary to declare a new enumeration type in order to define an enumeration type field. An anonymous enumeration may be used wherever a type name is expected and is declared as an enumeration type without the type name:

struct DocumentRecord {
  FILETIME CreationTime;
  enum { Complete, NeedsReview, OutOfDate } Status;
  char szName[];
};

 

 
Copyright © 2007 Inv Softworks LLC
All rights reserved
 
Home | Product | Download | Order | Support | Documentation | Company