搜索

C语言学习【Typedef】


发布时间: 2022-11-24 19:56:00    浏览次数:59 次

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属于是替换。

免责声明 C语言学习【Typedef】,资源类别:文本, 浏览次数:59 次, 文件大小:-- , 由本站蜘蛛搜索收录2022-11-24 07:56:00。此页面由程序自动采集,只作交流和学习使用,本站不储存任何资源文件,如有侵权内容请联系我们举报删除, 感谢您对本站的支持。 原文链接:https://www.cnblogs.com/kitcat/p/16923041.html