C#的一个过程!

  1 //相当于为现有类型创建一个别名,或称类型别名。

  2 //整形等

  3 typedef int size;

  4

  5

  6 //字符数组

  7 char line[81];

  8 char text[81];//=>

  9

  10 typedef char Line[81];

  11 Line text, secondline;

  12

  13

  14 //指针

  15 typedef char * pstr;

  16 int mystrcmp(pstr p1, pstr p2);//注:不能写成int mystrcmp(const pstr p1, const pstr p3);因const pstr p1解释为char * const cp(不是简单的替代)

  17

  18

  19 //与结构类型组合使用

  20 typedef struct tagMyStruct

  21 {

  22 int iNum;

  23 long lLength;

  24 } MyStruct;//(此处MyStruct为结构类型别名)=>

  25

  26 struct tagMyStruct

  27 {

  28 int iNum;

  29 long lLength;

  30 };//+

  31 typedef struct tagMyStruct MyStruct;

  32

  33

  34 //结构中包含指向自己的指针用法

  35 typedef struct tagNode

  36 {

  37 char *pItem;

  38 pNode pNext;

  39 } *pNode;//=>error

  40 //1)

  41 typedef struct tagNode

  42 {

  43 char *pItem;

  44 struct tagNode *pNext;

  45 } *pNode;

  46 //2)

  47 typedef struct tagNode *pNode;

  48 struct tagNode

  49 {

  50 char *pItem;

  51 pNode pNext;

  52 };

  53 //3)规范

  54 struct tagNode

  55 {

  56 char *pItem;

  57 struct tagNode *pNext;

  58 };

  59 typedef struct tagNode *pNode;

  60

  61

  62 //与define的区别

  63 //1)

  64 typedef char* pStr1;//重新创建名字

  65 #define pStr2 char *//简单文本替换

  66 pStr1 s1, s2;

  67 pStr2 s3, s4;=>pStr2 s3, *s4;

  68 //2)define定义时若定义中有表达式,加括号;typedef则无需。

  69 #define f(x) x*x=>#define f(x) ((x)*(x))

  70 main( )

  71 {

  72 int a=6,b=2,c;

  73 c=f(a) / f(b);

  74 printf("%d \\n",c);

  75 }

  76 //3)typedef不是简单的文本替换

  77 typedef char * pStr;

  78 char string[4] = "abc";

  79 const char *p1 = string;

  80 const pStr p2 = string;=>error

  81 p1++;

  82 p2++;

  83

  84 //1) #define宏定义有一个特别的长处:可以使用 #ifdef ,#ifndef等来进行逻辑判断,还可以使用#undef来取消定义。

  85 //2) typedef也有一个特别的长处:它符合范围规则,使用typedef定义的变量类型其作用范围限制在所定义的函数或者文件内(取决于此变量定义的位置),而宏定义则没有这种特性。

  --------------------------------------------------------------------------------

  1 //

  2 //C中定义结构类型

  3 typedef struct Student

  4 {

  5 int a;

  6 }Stu;//申明变量Stu stu1;或struct Student stu1;

  7 //或

  8 typedef struct

  9 {

  10 int a;

  11 }Stu;//申明变量Stu stu1;

  12

  13 //C++中定义结构类型

  14 struct Student

  15 {

  16 int a;

  17 };//申明变量Student stu2;

  18

  19

  20 //C++中使用区别

  21 struct Student

  22 {

  23 int a;

  24 }stu1;//stu1是一个变量 .访问stu1.a

  25

  26 typedef struct Student2

  27 {

  28 int a;

  29 }stu2;//stu2是一个结构体类型 访问stu2 s2; s2.a=10;

  30 //还有待增加。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值