lizhuming


前言

  • 基于头文件 stdarg.h
  • 基于 STM32
  • 基于 C
  • 如果读者对指针和堆栈的知识点比较熟悉,本笔记就一眼飘过,只需要看看怎么用就可以了哈哈。

语法

  • 主要的宏
    • va_list
    • va_start
    • va_arg
    • va_end

va_list

  • 不同平台,该宏可能不一样,以下时 STM32+C
  • void *
    • 这个指针就是一张白纸,任何类型的指针都能赋值给 void* 类型。
typedef struct __va_list { void *__ap; } va_list;
va_list args;
  • va_list 用于存放可变长参数的

va_start

  • 获取可变参数列表的第一个参数的地址
  • args 必须为 va_list 类型
  • str 参数必须为可变长参数(...)的前一个参数的地址
va_start(args,str);

va_arg

  • 获取可变参数的当前参数
  • 返回指定类型
  • 并将指针指向下一参数
  • 第二个参数为类型,即int、char char*之类的
a = va_arg(args,int);

va_end

  • 空va_list可变参数列表
a = va_end(args);

相关文章:

  • 2021-12-05
  • 2021-09-20
  • 2021-11-29
  • 2022-01-14
  • 2021-08-11
  • 2018-02-02
  • 2021-07-13
  • 2021-05-20
猜你喜欢
  • 2021-04-29
  • 2021-09-18
  • 2021-12-29
  • 2021-09-24
  • 2021-12-04
  • 2021-10-27
  • 2021-09-26
相关资源
相似解决方案