typedef

来源:互联网 发布:亚马逊海外购 知乎 编辑:程序博客网 时间:2024/05/16 04:55

参考《C深度剖析》 

typedef基本用法

 typedef struct student 

 { 

 //code 

 }Stu_st,*Stu_pst;//命名规则请参考本章前面部分 

 A),struct student stu1;和Stu_st stu1;没有区别。 

 B),struct student *stu2;和Stu_pst stu2;和Stu_st *stu2;没有区别。

 C),const Stu_pst stu3;

 D),Stu_pst const stu4;

 C),D)里const修饰的分别是stu3,stu4这2个指针。

 const修饰谁都时候完全可以将数据类型名视而不见。

 typedef与#define

 #define是在预处理实现简单替换的。
 typedef是在编译时处理数据类型的,和普通的变量定义一样。

 E),#define INT32 int
           unsigned INT32 i = 10;
 F),typedef int int32;
           unsigned int32 j = 10;//出错

 再举例:

 #define int_ptr int*

 int_ptr a,b;

 typedef char* char_ptr;

 char_ptr c,d;

 a是int*型,b是int型;

 c和d都是char*型;

 typedef更深入的应用

 typedef int (*MYFUN)(int);//MYFUN是一个类型,该类型的变量是一个指向函数的指针,该函数有两个整形形参,返回值为整形。

 用法:

  1. MYFUN FUN;
  2. char glFun(int a){ return;}   
  3. void main()   
  4. {   
  5.     FUN = glFun;   
  6.     (*FUN )(2);   

   typedef int vector[10]; //vector是一种类型,该类型的变量是一个含有10个整型元素的数组。
  使用:
  vector vector1;  //vector1是一个含有10个整型元素的数组。
  也可以是typedef int vector[10] array;使用方法为array vector1;

原创粉丝点击