C++之typedef和#define

来源:互联网 发布:简历信息采集软件 编辑:程序博客网 时间:2024/06/04 03:52

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;






0 0