黑马程序员技术交流社区

标题: typedef使用注意点 mj老师说只有悟性高的人才会懂 [打印本页]

作者: 天空总是很蓝    时间: 2014-11-22 10:53
标题: typedef使用注意点 mj老师说只有悟性高的人才会懂
  1. //typedef使用注意点
  2. /*
  3. typedef  类型  新类型名
  4. #define 宏名  值
  5. */
  6. typedef int Integer ; // integer定义整形变量  下面的int都换成ineger
  7. //利用宏定义 定义一个类型,
  8. #define Integer int ;//代码里面所有interger换成int  如果倒过来写的话 就表示所有的int换乘integer  integer是谁啊  程序能读出来吗   只能让integer 换成int让预编译后面的程序运行识别。如果改成integer后逾编译完后后面的程序不能读出integer 代表什么意思。程序这样写的话,后面代码中所有int类型写成integer 等待着程序运行时更换

  9. #include <stdio.h>
  10. //typedef int  Integer;/把这种类型定义成一个新的类型
  11. //typedef unsigned long int MyInt;
  12. typedef char *String;//用typedef定义这个类型和用define定义那个宏区别很难理解
  13. #define String2 char *
  14. int main()
  15. {
  16.     int a, b;
  17.     int a ;
  18.     String s1,s2;//都是String的 指针类型,char型    以上这句<==>char *s1;char*s2;这两句
  19.     //String2 s3  = “jake”;
  20.     String2  s3 ,s4;//s3才是char *指针,s4只是个char.这句是跟tepydef定义行类型的区别。看起来s3,s4都是char类型的指针,实际上s4并不是指针 只把s3定义成char *指针的了,当程序运行的时候 语句会替换成这样 char * s3,s4;<==>char *s3;char s4;这两句 宏只管替换不会在乎接下来怎么运行就像之前的宏中加括号跟不加括号的区别一样/
  21. }
复制代码

作者: wang2003    时间: 2014-11-22 22:32
这个不能体现typedef的优越性~
typedef struct
{
   char name[20];
   int age;
}Student;

Student stu1,stu2;
stu1.name = ……

逼格一下子就出来了,厉害吧!#define完全做不到哦。

typedef是类型定义,定义新的类型。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2