C语言数据类型、常量、作用域、链接属性与存储类详解
1. 自定义类型别名(typedef)
在C语言里, typedef
能够为已有的类型创建新的名字,这让代码更加清晰且易于维护。例如:
typedef char *ptr_to_char;
上述代码把 ptr_to_char
定义成指向字符的指针类型的别名。之后就可以像使用预定义类型名那样使用这个新名字,比如:
ptr_to_char a;
此语句将 a
声明为指向字符的指针。
运用 typedef
来声明类型,特别是复杂类型,能够降低声明出错的概率。要是后续需要更改程序里某种数据的类型,修改一个 typedef
要比修改所有处理该数据的变量(和函数)的声明容易得多。
建议使用 typedef
而非 #define
来创建新的类型名,因为 #define
无法正确处理指针类型。例如:
#define d_ptr_to_char char *
d_ptr_to_char a, b;
这里 a
被正确声明为指向字符的指针,但 b