您的位置:首页 > 编程语言 > C语言/C++

C++ typedef关键字

2017-02-10 16:27 274 查看
关键字:typedef
功能:为现有的类型名创建一个新的,容易记住的名字,并隐藏原有的笨拙的语法结构,增加美观;
使用目的:A、给变量一个容易记且有意义的新名字;
                    B、简化一些复杂的类型声明;
使用格式:typedef  exist_type  new_type_name
 
1、int/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
在编译时被解释
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: