C语言:typedef与宏的区别

  • typedef的注意点
    1、typedef是定义了一种类型的新别名,与宏不同,它不是简单的字符串替换,例如:
    定义typedef char* ptr,实现int my_strcmp(const ptr,const ptr),const ptr并不是相当于const char*,而是char* const.
    2、typedef 在语法上是一个存储类的关键字,它并不真正影响对象的存储特性,例如:
    typedef static int a;编译会失败,提示指定了一个以上的存储类。
  • typedef与宏的区别
    在C/C++语言中,typedef用来定义一个标识符和关键字的别名,不实际分配内存空间,它可以增强程序的可读性,以及标识符的灵活性,但它会有非直观性的缺点。,而宏通常用来定义常量,和用来实现一些冗杂的宏,本身并不在编译过程中进行,而是在预处理过程就已经完成,因此难以发现潜在的错误和代码维护问题,宏定义只是简单的字符串替换,而typedef不是,它的新名字具有一定的封装性,例如:
    typedef int* pINT;

    #define pINT2 int*
    他们的差别是 pINT a,b;等同于int* a,int* b,表示定义了两个整形指针变量,而pINT2 a,b;等同于int* a,b;表示定义了一个整形变量a与整形变量b。
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值