当前位置: 首页 > news >正文

wordpress 英文企业站普洱高端网站建设价格

wordpress 英文企业站,普洱高端网站建设价格,网站建设昆山博敏,技术支持 桂林网站建设文章目录 1 前言2 实例2.1实例程序2.2程序执行结果2.3 程序分析 3 补充4 总结 1 前言 在编程过程中#xff0c;有时会遇到需要定义参数数量不固定的函数的情况。 C语言提供了一种灵活的解决方案#xff1a;变参函数。这种函数能够根据实际调用时的需求#xff0c;接受任意… 文章目录 1 前言2 实例2.1实例程序2.2程序执行结果2.3 程序分析 3 补充4 总结 1 前言 在编程过程中有时会遇到需要定义参数数量不固定的函数的情况。 C语言提供了一种灵活的解决方案变参函数。这种函数能够根据实际调用时的需求接受任意数量的参数。 本文将通过具体的实例程序介绍如何定义和使用变参数函数并分析其原理。 2 实例 2.1实例程序 下面这段代码实现了一个名为 average 的可变参数函数用于计算平均值。该函数接受一个固定参数 num指示将要计算平均的数值个数随后跟随着省略号 …表示其后跟随的是不定数量的数值参数。 #include stdio.h #include stdarg.hdouble average(int num,...) {va_list valist;double sum 0.0;va_start(valist, num); //为 num 个参数初始化 valist /* 访问所有赋给 valist 的参数 */for (int i 0; i num; i){sum va_arg(valist, int);}va_end(valist); //清理为 valist 保留的内存return sum/num; }int main() {printf(Average of 2, 3, 4, 5 %f\n, average(4, 2,3,4,5));printf(Average of 5, 10, 15 %f\n, average(3, 5,10,15)); }2.2程序执行结果 2.3 程序分析 1.函数参数传递的原理 为更好的理解变参数函数首先介绍下函数函数参数传递的原理。传入参数是以栈的形式存取举个例子声明一个函数如下 void fun(int x, float y, char z);在调用函数 fun 时参数按照相反的顺序入栈首先是 int x接着是 float y最后是 char z即在内存中的存储顺序是 z-y-x。 知道这些参数在内存中是连续存储的从理论上讲如果我们能够探测到这些参数中的任意一个变量的内存地址并且了解其类型以及相关类型的内存布局我们可以使用指针算术来计算并访问其他参数的地址。 2.变参函数 average() 的执行遵循以下符合参数传递原理的步骤 创建一个va_list 类型 变量valist用于存储变参函数的参数列表使用 宏 va_start用于初始化 va_list类型的变量确保它指向变参函数的第一个命名参数 num该参数地址紧邻可变参数区域...利用 宏 va_arg 来访问参数列表valist中的每个int类型项每次调用后 valist 将自动更新以指向下一个参数使用宏 va_end 来清理赋予valist变量的内存 通过上面对变参函数的分析可知变参函数并不是所有的参数都可以省略即函数不能定义成fun(...) 这种形式至少需要一个固定参数如实例程序中的num来作为变参列表的开始标记 3 补充 下面再介绍一个实例拓展一下变参函数的使用它通过变参函数列表和vsnprintf函数格式化字符串输出整数、浮点数等类型的变量。 1.程序 #include stdio.h #include stdarg.hint i1; double j 45.67; char message[50];void fun(const char *format, ...) {va_list args;va_start(args, format);vsnprintf(message, sizeof(message), format, args);va_end(args);// 打印格式化后的字符串printf(%s\n, message); }int main(void) {fun(var1: %d, i);fun(var1: %d var2: %f , i, j);return 0; }2.程序执行结果 3.函数vsnprintf介绍 vsnprintf函数是一个C语言标准库函数用于将格式化的数据写入到一个字符串缓冲区中并且可以指定最大写入的字符数。 函数原型 int vsnprintf(char *str, size_t size, const char *format, va_list arg);参数说明 str指向用于存储格式化后的输出的字符数组的指针。size缓冲区的大小以字符为单位包括空字符‘\0’的空间。如果size为0vsnprintf将不写入任何字符但会返回需要的缓冲区大小不包括空字符。format格式化字符串指定了如何格式化后续参数。argva_list类型的参数列表包含了要格式化的参数。 返回值 vsnprintf返回写入到str缓冲区中的字符数不包括终止的空字符’\0’如果发生错误或者缓冲区大小不足以容纳所有字符则返回负值。 实例程序中main函数中调用fun(var1: %d var2: %f , i, j);时其内部vsnprintf函数的调用相当于直接使用vsnprintf(message, sizeof(message), var1: %d var2: %f , i, j);进行格式化输出。 4 总结 本文将通过具体的实例程序介绍了如何定义和使用变参数函数并分析其原理。 参考链接 va_start 用法 C 可变参数 【C语言】vsnprintf函数的使用
http://www.hkea.cn/news/14262494/

相关文章:

  • 企业建设网站维护如何建立网站详细流程
  • 关键词如何快速排名seo搜索优化邵阳
  • 做网站需要域名还需要什么做网站的基本功能
  • 如何做监控网站百度商桥接入网站
  • 企业网站 个人备案dw网页制作上机试题
  • 潼南国外免费自助建站自己没有货源怎么开网店
  • 泰州企业网站建设公司广告代理商公司
  • 北京建设网站活动图片网站法人与负责人
  • asp 网站源码做房产的一般用哪个网站
  • 上海营销型网站seo南宁公司网站开发
  • 如何在腾讯云建设网站wordpress安装无法链接数据库文件
  • 网站建设评比办法济南市住房城乡建设网
  • 网站设计平台及开发工具wordpress 获取当前id
  • 曲阜网站建设公司开拼多多网店怎么运营
  • 西昌市做网站的公司温州网站建设备案
  • 柳州微网站开发单页面竞价网站
  • 建站技术有哪些推广平台怎么做
  • 网站上线前做环境部署wordpress恢复数据库菜单不见
  • 广州市萝岗区做网站设计服务襄阳最新消息
  • 装修网站排名网站开发运营
  • 菏泽住房和城乡建设局网站芜湖市网站开发
  • wordpress for sae图床优化师是干嘛的
  • 菏泽手机网站建设wordpress html5视频插件
  • 博客网站如何设计网站四网合一
  • 上海简约网站建设公司全国新冠新增最新消息
  • 古县网站建设PHP是做网站最好的
  • 网站开发项目经验描述科技公司网站首页
  • 织梦末班和dw建设网站哪个方便优化做ppt免费模板软件
  • 建设银行网站支付限额怎么办网站建设人员
  • 工商所什么网站可做年报资源交易网站代码