匿名结构体
struct { int a; int b; } v; // 这里表示定义了一个结构体的变量a,且结构体类型没有名字,后续不能再定义结构体,除非又把结构体写一遍。
有名字的结构体
struct struct_type{ int a; int b; } v; // 这里表示定义了一个结构体的变量v,且结构体类型的名字为 "struct struct_type" // 后续要定义结构体变量的时候要使用"struct struct_type"
// 有的编译器使用struct_type定义变量也是可以的,class一样。
struct struct_type b; // 定义结构体变量b
使用typedef命名
typedef struct { int a; int b; } S_TYPE; // 或者 typedef struct struct_type { int a; inb b; } S_TYPE; // 两种定义方式都可以使用"S_TYPE"定义结构体变量,第二中还可以使用"struct struct_type"或者sturct_type定义结构体变量。 // 使用了typedef就不能在定义类型的时候也声明变量。 S_TYPE v;
特殊的emue,emue中定义的值其实就是define
typedef emue { RED, BLUE,GREEN //域之间是用“,”分开,不像struct和union是用“;”分开。 } color; // 等效于 // #define RED 0 // #define BLUE 1 // #define GREEN 2 color c = RED; // 由于域是define的,也就是全局的,可以直接使用