define和typedef区别

今天我们来看一下C语言里的宏定义define和typedef之间的区别。

C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,typedef可以增强程序的可读性,以及标识符的灵活性,但它也有非直观性等缺点。

#define为一宏定义语句,通常用它来定义常量(包括无参量与带参量),以及用来实现那些“表面似和善、背后一长串”的宏,它本身并不在编译过程中进行,而是在这之前(预处理过程)就已经完成了,但也因此难以发现潜在的错误及其它代码维护问题。

简单来说就是:

#define就是单纯的简单的字符替换。

typedef给一个较长的类型起一个简短的别名。

这么说很抽象,下面举几个例子说明一下:

#define:

      #define PINT int*

      PINT f,h;//==int *f,h==int *f;int h

typedef:

在C中定义一个结构体类型要用typedef:
    typedef struct Student
    {
        int a;
    }Stu;
    于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明)
    这里的Stu实际上就是struct Student的别名。Stu==struct Student

类型重定义:typedef int* Pint;

                      Pint d,e;//==int* d,*e==int *d;int *e



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值