A typedef lets us define a synonym for a type:
- typedef double wages; // wages is a synonym for double
- typedef int exam_score; // exam_score is a synonym for int
A typedef name can be used as a type specifier:
- wages hourly, weekly; // double hourly, weekly;
- exam_score test_result; // int test_result;
A typedef definition begins with the keyword typedef, followed by the data type and identifier. The identifier, or typedef name, does not introduce a new type but rather a synonym for the existing data type. A typedef name can appear anywhere in a program that a type name can appear.
复杂typedef 的认法:把typedef 遮住,那么这个语句定义了一个变量,如wages;再把typedef 放回去,wages 就成了一个类型,该类型与遮住typedef 时定义的wages 变量的类型相同。
注意:typedef 不定义新的类型,而是定义一个“同义词”。
Typedefs are commonly used for one of three purposes:
· To hide the implementation of a given type and emphasize instead the purpose for which the type is used
· To streamline complex type definitions, making them easier to understand
· To allow a single type to be used for more than one purpose while making the purpose clear each time the type is used