c语言typedef编程,C语言typedef关键字学习

typedef关键字用来给现有数据类型创建别名。

typedef int size_t;

所以下面的两个定义其实完全相同。

size_t size;

int size;

咦,下面这样定义一个size_t的宏是不是也能达到一样的效果呢?

#define size_t int

在这里,确实define一个数据类型宏能达到同样的目的。

但是typedef和define相比:

define只会在预编译阶段进行简单的替换操作;

typedef则会在编译阶段进行数据类型检查。

所以相比于define,更推荐使用typedef来为现有数据类型创建新的类型别名。

typedef关键字的作用有:

1. 创建易于记忆的类型别名

typedef int size;

2. 对操作系统提供的数据类型进行封装,提供系统无关的数据类型别名。

这样可以写出不依赖于操作系统的应用程序,让应用程序在不同系统之间的移植变得更简单了。

3. 使用typedef可以让callback函数的原型定义变得更简单。

如下定义了一个函数指针的原型是有两个参数,返回值是int类型。

typedef int (*pfunc)(int size, void* pvalue);

关于typedef和const两个关键字结合使用的案例分析。

typedef char* pstr;

char str[10] = "112345";

const pstr p1 = str;

p1++;

如果代码这样写,那么在编译阶段就会报错。

这是因为按照const的修饰规则,它修饰的是pstr这种数据类型的变量p1;

而p1是一根指针,用const修饰了就意味着这个指针不能随便乱动了,

所以编译器才会报错。

通过这个案例,也恰恰说明了typedef和使用define的区别:

typedef不是在预编译阶段做简单的替换动作;

typedef定义了一个新的数据类型,对编译器而言pstr就是一种数据类型。

推荐阅读:

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值