【1】typedef关键字有何作用?
typedef通常被用于以下三种目的:
<1> 为了隐藏特定类型的实现,强调使用类型的目的。
<2> 简化复杂的类型定义,使其更易理解。
<3> 允许一个类型用于多种目的,同时使得每次使用该类型的目的明确。
【2】关于typedef使用应该注意哪些问题?
(1)typedef使用举例。示例代码如下:
1 #include2 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 #include3 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修饰*p113 p2++; //const修饰*p214 *p1='a'; //error!!!!!!!!!15 }
(3)typedef使用分类
1 #include2 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 #include2 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; // 813 cout << "sizeof(DEF) :: " << sizeof(DEF) << endl; // 814 cout << "sizeof(FGH) :: " << sizeof(FGH) << endl; // 815 }16 // run out:17 /*18 sizeof(ABC) :: 819 sizeof(DEF) :: 820 sizeof(FGH) :: 821 */
(5)待续.....
Good Good Study,Day Day Up.
顺序 选择 循环 总结