黑马程序员技术交流社区
标题: #define和typedef的区别 [打印本页]
作者: liminghui 时间: 2015-9-23 09:54
标题: #define和typedef的区别
我们都知道#define是一个宏,typedef是起别名,但是具体在代码中是怎么实现的,
他们的区别以及他们都被不同的两个变量赋值后的结果是怎样的.下面的一段代码是我
在X-code里敲的,我觉得是个很好地实例:
#include <stdio.h>
#define M int * // 定义一个宏
typedef int * Other; // 给int * 起个别名 Other
int main(int argc, const char * argv[]) {
int c = 100;
int d = 200;
M P1,P2;
P1 = &c; // 等价于 int *p1 =&c
P2 = d; // 等价于 int P2 = d 如果写成 P2 = &d 系统会报错
printf("指针P1的值是:%d\n",*P1);
printf("变量P2的值是:%d\n",P2); //对应的 如果把P2写成 *P2 系统会报错
int e = 250;
int f = 300;
Other p3,p4;
p3 =&e;// 等价于 int *p3= &d
p4 = &f; // 等价于 int *p4=&f 如果改成 P4 = f 系统会报错
printf("指针P3的值是:%d\n",*p3);
printf("指针P4的值是:%d\n",*p4);// 对应的如果把*p4写成p4 系统会报错
return 0;
}
通过上面的例子 我们知道了
typedef和#define的区别:
#define : 只是简单的替换
M P1,P2 => int *P1(指针),int P2(变量)
typedef: 换名字并且可以参与定义
Other p3,p4;=> int *p3, int *p4(都是指针)
作者: hejianchun 时间: 2015-9-23 10:08
不错 ,一看上课就认真听了 笔记做的挺好
作者: 摆摆 时间: 2015-9-23 10:40
顶一个!
作者: acdd112 时间: 2015-9-23 18:11
笔记做的挺好
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |