zoukankan      html  css  js  c++  java
  • 【C语言】函数不定长参数


    前言

    • 基于头文件 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);
    
  • 相关阅读:
    类属性、实例属性
    多态
    重载
    多继承
    继承介绍以及单继承
    析构
    构造
    self
    方法
    属性
  • 原文地址:https://www.cnblogs.com/lizhuming/p/13828478.html
Copyright © 2011-2022 走看看