嵌入式培训学习历程第二十三天

  1.变参函数 : 声明中带有“...”的函数

      (1)函数调用时参数个数不确定

       (2)注意: 

            变参函数中至少有一个固定参数

            变参函数在声明,定义时参数不固定

            变参列表在调用参数中, 参数个数,类型都是固定的

  2.va_list  类型名   : typedef char* va_list

   va_start  va_arg   va_end  是宏

        va_start : 保存第一个变参列表  例: va_start(ap, last)  : &last + sizeof(last)

        va_arg : 取出当前变参并将指针指向下一变参  例 : va_arg(ap, type)   : *((type *)((ap += sizeof(type)) - sizeof(type)))

        va_end : 将指针清空

    扩展 : Tnd(type , tnd)    : (sizeof(type) + tnd) & ~tnd      结果为4的整数倍    通常tnd 是 3U

  3.使用va_arg(ap, type) 

      注意事项: 整形提升 : 若获取的类型为char会提升为int

  4.整形提升的目的 : 为了对齐  

  

  英语 : decimal(小数)

转载于:https://www.cnblogs.com/cxw825873709/p/3261494.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值