• 基于头文件 stdarg.h
  • 基于 STM32
  • 基于 C
  • 如果读者对指针和堆栈的知识点比较熟悉,本笔记就一眼飘过,只需要看看怎么用就可以了哈哈。
  • 主要的宏
    • va_list
    • va_start
    • va_arg
    • va_end
  • 不同平台,该宏可能不一样,以下时 STM32+C
  • void *
    • 这个指针就是一张白纸,任何类型的指针都能赋值给 void* 类型。
  1. typedef struct __va_list { void *__ap; } va_list;
  1. va_list args;
  • va_list 用于存放可变长参数的
  • 获取可变参数列表的第一个参数的地址
  • args 必须为 va_list 类型
  • str 参数必须为可变长参数(…)的前一个参数的地址
  1. va_start(args,str);
  • 获取可变参数的当前参数
  • 返回指定类型
  • 并将指针指向下一参数
  • 第二个参数为类型,即int、char char*之类的
  1. a = va_arg(args,int);
  • 空va_list可变参数列表
  1. a = va_end(args);

版权声明:本文为lizhuming原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/lizhuming/p/13828478.html