zoukankan      html  css  js  c++  java
  • 嵌入式培训学习历程第二十三天

      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(小数)

  • 相关阅读:
    mysql常用命令(2)
    mysql常用命令(1)
    svn使用方法介绍(1)
    java设计模式
    maven常见错误
    Powershell上线MSF
    Alibaba Nacos 认证绕过
    好视通-视频会议存在弱口令&任意文件下载漏洞
    金山 V8 终端安全系统存在默认口令
    (CVE-2021-3297)Zyxel NBG2105身份验证绕过漏洞
  • 原文地址:https://www.cnblogs.com/cxw825873709/p/3261494.html
Copyright © 2011-2022 走看看