typedef关键字基本使用

typedef

  • 什么是typedef,它有什么作用

    • typedef可以给一个已知的数据类型其别名(外号)
  • 利用typedef给数据类型起别名的格式:

    • typedef 原有的数据类型 别名(外号);
  • 注意:

    • typedef不仅能给系统原有的数据类型起别名,也可以给一个自定义的数据类型起别名
    • 利用typedef给数据类型起别名,并不会生成一个新的数据类型,仅仅是给原有的类型起一个别名而已
给基本数据类型起别名
typedef int  Integer;// 给系统的数据类型起别名
typedef Integer myInt;// 给自定定义的数据类型起别名

Integer num = 10;
myInt num1 = 20;
给结构体类型起别名
// 先定义结构体,再给类型起别名
struct Person
{
    int age;
    char *name;
};
typedef struct Person SPerson;

// 定义结构体类型的同时给结构体类型起别名
typedef struct Person
{
    int age;
    char *name;
} SPerson;

// 定义结构体类型的同时给结构体类型起别名,并且省略掉原有类型的名称
typedef struct
{
    int age;
    char *name;
} SPerson;
给枚举类型起别名
// 先定义枚举类型,再给枚举类型起别名
enum Gender
{
    kGenderMale,
    kGenderFemale
};
typedef enum Gender SEX;

// 定义枚举类型的同时给枚举类型起别名
typedef enum Gender
{
    kGenderMale,
    kGenderFemale
} SEX;

// 定义枚举类型的同时给枚举类型取别名,并且省略枚举原有类型名称
typedef enum
{
    kGenderMale,
    kGenderFemale
} SEX;
给指针类型取别名
typedef char * String;

// 注意:如果给指针区别名之后,那么以后利用别名定义变量就不要加*
String name = "lml";
给函数指针取别名
// 函数
int sum(int v1, int v2)
{
    return v1 + v2;
}

// 注意:如果是给指向函数的指针起别名,那么指向函数的指针的指针名称就是它的别名
// functionP == int(*functionP)(int, int)
typedef int(*functionP)(int, int);

// 使用
functionPotinter sumP = sum;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容