struct MyStruct {
int value;
const char * key;
} JStruct;
typedef struct MyStruct2{
int value;
const char *key;
} JarekStruct;
typedef 是为MyStruct2取了一个别名JarekStruct,而JStruct则是一个MyStruct类型的对象。
两种定义方式在使用时也会有区别:
struct MyStruct tmpSt;//此处声明一个MyStruct类型的对象时必须加上struct关键字,二者合起来才是一个数据类型。
JarekStruct tempStr2; //不需要加struct关键字,因为通过typedef已经将JarekStruct定义为了一种数据类型。
另外,一个typedef 导致的trap是:
typedef char * MyPT;
const MyPT bob;
实际上是 char * const bob;而不是const char* bob;在使用时需要特别注意。