C++之typedef和#define

本文详细介绍了C/C++中宏定义(#define)和类型定义(typedef)的区别及使用场景。通过具体示例展示了两者如何工作,并强调了它们在预编译与编译过程中的不同处理方式。

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

1、#define

作用:宏定义。通常用来定义常量。

处理阶段:在预编译过程中处理。# 是宏的意思。宏处理器不会对C/C++程序有任何的感知。它只处理宏的语法,做简单的文本替换。

例如:

#define INT int
#define TRUE 1
#define Add(a,b) ( (a) + (b))
#define Loop_10 for( int  i = 0; i < 10; i ++)

2、typedef 

作用:后跟数据类型或标识符。用来定义一个标识符或关键字的别名

处理阶段:在编译过程处理。

例如:

typedef double wages;
typedef wages salary;
typedef int INT;
typedef (int *) pINT;


常见面试问题:typedef和#define在数据类型上的使用的区别:

typedef可以定义类型的别名,但#define仅仅是简单的文本替换,能起到数据类型的作用,仅是因为替换的文本恰好是数据类型。看一个例子:

typedef (int *)  pINT;
#define pINT2  int *;

pINT a, b;//相当于 int *a, *b;  也就是int* a; int*b;
pINT2 c, d;//相当于 int *a, b;  也就是int *a; int b;






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值