C语言typedef的用法

本文深入讲解C语言中typedef关键字的用法,包括为现有类型定义别名的目的、使用规范及与#define的区别,通过实例帮助理解如何提高编码效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C语言typedef的用法

C 语言提供了 typedef 关键字,你可以用它为一个现有类型起一个新的别名,就像给人起“绰号”一样。
起别名的目的不是为了提高程序运行效率,而是为了编码方便
注意typedef只是为现有类型赋予一个新的名字,而不是创建新的类型。为了“见名知意”,请尽量使用含义明确的标识符,并且尽量大写。
例:
typedef int A;
A s; 等价于 int s;
又例如,为结构体类型定义别名:
typedef struct stu
{
char name[20];
int age;
char sex;
} STU;
上述代码相当于完成了这两个操作:
(1)
struct stu
{
char name[20];
int age;
char sex;
} STU;
(2) typedef struct stu STU;
这时候定义一个结构体变量就可以用STU来代替struct stu 这样编写代码就方便了。
typedef 和 #define的区别:
#define 与 typedef 类似,但是它们有以下几点不同:
(1)typedef 仅限于为类型定义符号名称,#define 不仅可以为类型定义别名,也能为数值定义别名。
比如您可以定义 1为 ONE。
#define ONE 1
(2)typedef 是由编译器执行解释的,#define 语句是由预编译器进行处理的。(这里补充一下以#号开头的语句
都是由预编译器进行处理的)
(3)typedef 和#define(宏替换)之间存在一个关键性的区别。正确思考这个问题的方法就是把 typedef 看成一种彻底的“封装”类型,
声明之后不能再往里面增加别的东西。
例:
#define A int
typedef int B
long A s=100; 对的
long B s=100; 错的,不可以再添加属性。
(4)在连续定义几个变量的时候,typedef 能够保证定义的所有变量均为同一类型,而 #define 则无法保证。
例:
#define int * A
A p1,p2;
p1的类型是一个指向int型的指针(int *)而p2是int型。
typedef int * A
A p1,p2;
p1,p2都是指向int型的指针(int *)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值