構造体とは違う。
説明省いて簡単な具体例の一つを示すと、

enum GameState_t {
GAME_STATE_TITLE = 0;
GAME_STATE_NAME = 1;
:
}
となるので、

switch( state )
{
case GAME_STATE_TITLE: (何かの処理)
case GAME_STATE_NAME: (何かの処理)
}
みたいな場合、

switch( state )
{
case 0: (何かの処理)
case 1: (何かの処理)
}
こう書くより見やすくなる。OK?

詳しくはコンパイル時に決まるとかSTLのときどうとかとかあるけど、今は考えなくていい。