美文网首页
typedef关键字基本使用

typedef关键字基本使用

作者: Coder007 | 来源:发表于2016-11-19 15:34 被阅读38次

    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;
    

    相关文章

      网友评论

          本文标题:typedef关键字基本使用

          本文链接:https://www.haomeiwen.com/subject/wdcepttx.html