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
在编译时被解释
功能:为现有的类型名创建一个新的,容易记住的名字,并隐藏原有的笨拙的语法结构,增加美观;
使用目的: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
在编译时被解释
相关文章推荐
- PHP5中的this,self和parent关键字详解
- 智能提示功能,类baidu等关键字弹出提示。
- restrict 关键字
- [黑马程序员][C语言]static和extern关键字
- 数据库关键字
- Virtual关键字
- C/C++中const关键字
- C++中不常用的关键字(很有用 转)
- 理解C++中static关键字
- C++ explicit关键字应用方法详解
- typeof关键字
- Java关键字finally
- 测量各种数据类型的长度(包括指针),typedf关键字对数据类型的作用!
- java的volatile关键字(笔记)
- HOL(Hibernate Query Language)关键字详细列表
- typeof关键字
- protected 关键字 访问权限
- Java所有关键字
- C语言中volatile关键字的作用
- 函数与关键字