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属于是替换。
标签:char,Typedef,int,typedef,C语言,学习,ARR,PTR,define From: https://www.cnblogs.com/kitcat/p/16923041.html