# Enumerated types tutorial

This screen capture (IDA 3.66) shows how IDA handles high level structures. This tutorial shows you how to obtain this result.

![](https://545602138-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FucByjS46IhJacH1pbIKC%2Fuploads%2Fgit-blob-8016113bef903431e2ef735a278f209eb6b9d0c1%2Fidaenum.gif?alt=media)

You can use IDA to interactively define and manipulate enumerated types in the disassembly. Consider this simple sample C program:

```
enum color_t {
    BLACK,          /* dark colors */
    BLUE,
    GREEN,
    CYAN,
    RED,
    MAGENTA,
    BROWN,
    LIGHTGRAY,
    DARKGRAY,           /* light colors */
    LIGHTBLUE,
    LIGHTGREEN,
    LIGHTCYAN,
    LIGHTRED,
    LIGHTMAGENTA,
    YELLOW,
    WHITE
};

enum day_t { MONDAY, TUESDAY, WEDNESDAY, THUSDAY, FRIDAY, SATURDAY, SUNDAY };

enum bool_t { FALSE, TRUE };

int is_suitable_color(day_t day,color_t color) {
  if ( (day == SUNDAY || day == SATURDAY) && color == RED ) return TRUE;
  if ( color == BLACK || color == BLUE ) return TRUE;
  return FALSE;
}
```

In order to use meaningful names instead of numbers, we open the enums window and press insert to define a new enumerated type.

![](https://545602138-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FucByjS46IhJacH1pbIKC%2Fuploads%2Fgit-blob-a533b806036bbf08960a3f643af8704aacc44bcf%2Fidaenumdef.gif?alt=media)
