A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  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. }
复制代码

评分

参与人数 1黑马币 +1 收起 理由
星河鹭起 + 1

查看全部评分

1 个回复

正序浏览
这个不能体现typedef的优越性~
typedef struct
{
   char name[20];
   int age;
}Student;

Student stu1,stu2;
stu1.name = ……

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

typedef是类型定义,定义新的类型。
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马