C/C++中typedef和类型别名
一些习以为常的基础,偶尔间发现还有未触及的盲区。不懂就要弄懂。
感谢 csxiaoshui大神的文章,自己做了删减并记录了自己的体会。
1. 基本语法和使用场景
1.1 指定一个简单的别名,避免了书写过长的类型名称
在C语言的结构体定义中:
struct MyStruct {
int data1;
char data2;
};
struct MyStruct a, b;
如果使用typedef,则可以简化为:
// struct后的MyStruct可以省略
typedef struct MyStruct {
int data1;
char data2;
} MyStruct;
MyStruct a, b;
1.2 实现一种定长的类型,在跨平台编程的时候尤其重要
由于C/C++规范中没有定义int的长度,所以不同的平台上int变量所占的字节数是不同的。
为了解决这些问题,很多时候可以定义一个固定大小的类型(比如32位的Int类型)Int32,用来表示固定长度的整型。
1.3 使用一种方便阅读的单词来作为别名,方便阅读代码