enum {...}定义了一个具体的枚举类型,后面加变量名就是定义了这个类型的枚举变量。结构体、联合体都是一样的。

struct Object {
  // ...
} object;

struct Object {
  // ...
};
Object object;

是一样的,不过在C语言里表示结构体类型需要加上struct,比如像struct Object object;是定义,所以经常会这样简化代码,或者写出

typedef struct object {
   // ...
} Object;

这种代码,结构体名称首字母小写,但是别名是大写,也就是struct objectObject是等价的,而在C++中就不需要特地加上struct修饰类型。