zoukankan      html  css  js  c++  java
  • C++ 中获取 可变形參函数中的參数

    #include <iostream>
    #include <stdarg.h>
    
    using namespace std;
    
    int ArgFunc(const char * str, ...)
    {
    	va_list ap;			 // 定义參数列表变量
    
    	va_start(ap, str); 	 // 确定參数位置。表明从 str 開始获取參数
    
    	// 開始获取參数    var_arg(ap, 数据类型)  返回获取的值
    	cout<<va_arg(ap, int)<<endl;
    	cout<<va_arg(ap, int)<<endl;
    
    	// 由于仅仅传入两个參数。所以这里获取到的数值为 零
    	cout<<va_arg(ap, int)<<endl;
    	cout<<va_arg(ap, int)<<endl;
    
    	va_end(ap);			// 将參数列表 ap 清零
    
    	return 0;
    }
    
    
    int main()
    {
    
    	ArgFunc("func", 10, 20);   // 数据从右往左 压入 栈中 。栈顶元素为 "func"
    	
    	return 0;
    }
    
    
    /*****************************************************
    *
    *         获取可变參数
    *
    *  1. 包括头文件:#include <stdarg.h>
    *  2. 定义 參数列表变量:va_list ap; 
    *  3. 确定从哪里開始获取数据    va_start(ap, str); 表示在str參数之后開始获取參数。
    *  4. 開始获取參数并指明类型,如:va_arg(ap, int); 获取第一个參数。并指明类型为 int 
    *  5. 清空列表  va_end(ap);
    *
    ******************************************************/
    



    执行结果:




  • 相关阅读:
    Java使用printf格式化日期
    Java时间Date类
    Java数组
    Spring Cloud Stream
    Spring Cloud Bus
    Spring Cloud Config
    api服务网关?
    SPRINGBOOT集成SWAGGER2
    MySQL锁(一)全局锁:如何做全库的逻辑备份?
    Spring的FactoryBean
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5085358.html
Copyright © 2011-2022 走看看