typedef关键字
【1】typedef关键字有何作用?
typedef通常被用于以下三种目的:
<1> 为了隐藏特定类型的实现,强调使用类型的目的。
<2> 简化复杂的类型定义,使其更易理解。
<3> 允许一个类型用于多种目的,同时使得每次使用该类型的目的明确。
【2】关于typedef使用应该注意哪些问题?
(1)typedef使用举例。示例代码如下:
1 #include<iostream>
2 using namespace std;
3 void main()
4 {
5 typedef char* charPtr;
6 charPtr ch, ch1; //char *ch, char *ch1
7 char *ph1 = ch; //OK!!!!!!
8 char *ph2 = ch1; //Ok!!!!!!
9 char String[4] = "abc";
10 const char *p1 = String;
11 const charPtr p2 = String; //相当于char * const p2 (注意差别)
12 p1++;
13 *p2 = 'a';
14 //p2++; //error!!!!!!p2为常量
15 }
(2)宏替换与typedef的区别
1 //宏替换与typedef的区别:
2 #include<iostream>
3 using namespace std;
4
5 #define charPtr char*
6 void main()
7 {
8 charPtr ch,ch1; //char *ch,ch1//ch相当于指针 ch1相当于变量
9 char String[4] = "abc";
10 const char *p1 = String;
11 const charPtr p2 = String; //const char * p2
12 p1++; //const修饰*p1
13 p2++; //const修饰*p2
14 *p1='a'; //error!!!!!!!!!
15 }
(3)typedef使用分类
1 #include<iostream>
2 using namespace std;
3
4 typedef int *PINT; //PINT 在此代表 int *
5 typedef int Array[10]; //Array 在此代表类型 int []
6 typedef int (*pfn)(int,int); //pfn 在此代表一种函数指针类型
7 void main()
8 {
9 Array a,b;
10 pfn c,d;
11 }
(4)typedef特殊情况
1 #include <iostream> 2 using namespace std; 3 4 typedef struct 5 { 6 int m_a; 7 int m_b; 8 } ABC, DEF, FGH; // ABC、DEF、FGH均为类型名称 9 10 void main() 11 { 12 cout << "sizeof(ABC) :: " << sizeof(ABC) << endl; // 8 13 cout << "sizeof(DEF) :: " << sizeof(DEF) << endl; // 8 14 cout << "sizeof(FGH) :: " << sizeof(FGH) << endl; // 8 15 } 16 // run out: 17 /* 18 sizeof(ABC) :: 8 19 sizeof(DEF) :: 8 20 sizeof(FGH) :: 8 21 */
(5)待续.....
Good Good Study,Day Day Up.
顺序 选择 循环 总结