typedef 用于一个给数据类型起别名,这个数据类型可以是如下几类:
- int、float、char等常见的数据类型
- 枚举类型
- 结构体
- 函数指针
以下结合实例一一说明其用法。
给数据类型起别名
最简单的应用示例:
常见的数据类型如int、float等,可将该数据类型换个别名。此类用法在实际编程中的应用场景较少。如下例,可用NUM变量表示int类型变量。
typedef int NUM;
增加代码的可移植性
一些不常见的变量在不同的系统上表示的含义不同。如果获取一个稳定的数据类型,可自行定义新变量别名,如下两个案例:
case1:8字节的整数
在32位的操作系统中其数据类型为 long long int
, 在64位的操作系统中其数据类型为 long int
。如果想要一个64类型的正整数,则可以使用如下实现:
#if __WORDSIZE == 64
typedef long int int64_t;
#else
typedef long long int int64_t;
#endif
case2:8字节正整数size_t
表示8字节的正整数类型size_t,其真实的数据类型在<stddef.h>定义为:
#ifndef __SIZE_TYPE__
#define __SIZE_TYPE__ long unsigned int
#endif