您的位置:首页 > 其它

C语法-函数不定长参数

2020-10-16 19:48 393 查看

目录

前言

  • 基于头文件 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 用于存放可变长参数 11b0 的

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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: