C语言学习【Typedef】

C语言允许为一个数据类型起一个新的别名,就像给人起“绰号”一样。

Typedef可以为int起个绰号为Money

typedef int Money;
Money=0;

这就是typedef的基本用法既:

typedef 旧名 新名;

这与#define相反:#define 绰号 内容,当然原理也和define不一样。

typedef更倾向于代入后替换

char str[3][30];
typedef char (*PTR_TO_ARR)[30];
PTR_TO_ARR parr = str;
-------------------------------------------------
可以理解为
char (*PTR_TO_ARR)[30]=str;
然后将PTR_TO_ARR替换为parr
char (*parr)[30]=str;

  然后就是类似的用法,如struct

typedef struct lib{int a;float b;} *Typ;
Typ k;
k->a=0;

  在函数中的应用

typedef int (*def)(int,int);
int func(int a,int b){
return a>b?a:b;
}
int main(){
def hello=func;
int a=hello(5,10);
return 0;
}

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

和define的区别

#define max(a,b) (a>b?a:b)
a=3*max(5,4)
-----------------------------------------------
可以理解为
 a=3*(5>4?5:4)

define是针对于编译器的,可以替换任何,而typedef只能够替换类型。

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

总结:typedef属于是取名,而define属于是替换。

posted @ 2022-11-24 19:49  kitcat  阅读(70)  评论(0编辑  收藏  举报