C++ typedef关键字

关键字:typedef

功能:为现有的类型名创建一个新的,容易记住的名字,并隐藏原有的笨拙的语法结构,增加美观;

使用目的:A、给变量一个容易记且有意义的新名字;

                    B、简化一些复杂的类型声明;

使用格式:typedef  exist_type  new_type_name

 

1int/double/char等常见定义

    格式:typedef int name_int; 声明中定义了int的同义词name_int,可以在任何使用int的地方用name_int

               typedef unsigned char name_char; 声明中定义了unsigned char的同义词name_char,可以在任何使用int的地方用name_char

2、数组/指针

    格式:typedef int name[128]; 使用typedef定义后,可直接使用name代替int name[128] 

                typedef char* pstr;  使用typedef定义后,可直接使用pstr代替char* pstr

                eg: typedef char* pstr; 

                      pstr str = "abcde";

                      char mystrcmp(pstr, pstr);

3、函数

    若有 void print_name(int);

    定义一个函数指针,使其指向print_name并调用;

    void (*fun_name)(int);   //声明一个函数指针,调用参数是int型,变量名是fun_name

    fun_name = &print_name

以上便是声明一个函数指针,并使其指向print_name函数,然而其比较复杂,简化的声明如下:

   typedef void (*PrintHelloHandle)(int);

使用代码如下:

   PrintHelloHandle  fun_name; 

   fun_name = &printHello; (*pFunc)(110);

以后其他地方的程序需要声明类似的函数指针,只需要下面代码:

  PrintHelloHandle  pFuncOther;

这样,代码就变得更加简洁易懂。

4、结构体

  typedef struct A   //这里的A可以省略!形成一个匿名结构体  A是结构体名
   {
     int a;
     int b;
   }B;  

因为前面有typedef命令,所以B不是变量,而是一个新的数据类型,相当于struct A
可以用B来定义变量,如:
  B aa struct A aa ; 是一个意思

5、注意

    A-typedef 并不创建新的类型;

    B-仅仅为现有类型添加一个同义字

    C-typedef并不创建新的类型,typedef 在编译时被解释

 








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值