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

东莞网站建设公司百推福州seo推广

东莞网站建设公司百推,福州seo推广,免费新建网站,做化学题的网站Linux C语言 26-可变参数 本节关键字:可变参数、va_list、va_arg、va_end 相关C库函数:va_list、va_arg、va_end 什么是可变参数? C语言中的可变参数是指函数能够接受不定数量的参数。在不确定函数参数时,使用“char *format, …

Linux C语言 26-可变参数

本节关键字:可变参数、va_list、va_arg、va_end
相关C库函数:va_list、va_arg、va_end

什么是可变参数?

C语言中的可变参数是指函数能够接受不定数量的参数。在不确定函数参数时,使用“char *format, …”的方式提供多个参数的输入。可变参数的引入旨在解决:

  • 变参问题是指参数的个数不定,可以是传入一个参数也可以是多个;
  • 可变参数中的每个参数的类型可以不同,也可以相同;
  • 可变参数的每个参数并没有实际的名称与之相对应。
    因此,当函数的参数个数不确定时,就可以使用可变参数进行动态处理,这样就打打增加了程序的灵活性。

相关宏和函数

#include <stdarg.h>
#define va_start(v,l)    __builtin_va_start(v,l)
#define va_end(v)    __builtin_va_end(v)
#define va_arg(v,l)    __builtin_va_arg(v,l)void va_start(va_list ap, last);
type va_arg(va_list ap, type);
void va_end(va_list ap);
void va_copy(va_list dest, va_list src);int printf(const char *format, ...);
int vprintf(const char *format, va_list ap);
int vfprintf(FILE *stream, const char *format, va_list ap);
int vsprintf(char *str, const char *format, va_list ap);
int vsnprintf(char *str, size_t size, const char *format, va_list ap);

va_list的使用

(1)在函数中定义一个具有va_list型的变量,这个变量是指向参数的指针。
(2)用va_start宏初始化变量刚定义的va_list变量,使其指向第一个可变参数的地址。
(3)va_arg返回可变参数,va_arg的第二个参数是你要返回的参数的类型(如果多个可变参数,依次调用va_arg获取各个参数)。
(4)最后使用va_end宏结束可变参数的获取。

在使用va_list是应该注意以下问题:

  • 可变参数的类型和个数完全由代码控制,它并不能智能地识别不同参数的个数和类型。
  • 如果我们不需要一一详解每个参数,只需要将可变列表拷贝到某个缓冲区,可以用vsprintf函数。
  • 因为编译器对可变参数的函数原型检查不够严格,对编程查错不利,不利于我们写出高质量的代码。

va_list使用例程

#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <time.h>void myprint(const char *format, ...)
{char str[1024] = {0};va_list vList;va_start(vList, format);vsprintf(str, format, vList);va_end(vList);printf("%s\n", str);
}int sum(char *format, ...)
{va_list vList;int nStep, sNum=0;va_start(vList, format);printf("%s\n", format);while (nStep = va_arg(vList, int)){// va_arg负责取出符合参数类型的下一个指针// 第一个参数时可变参数变量,第二个参数是传入参数类型,sNum += nStep;}va_end(vList);return sNum;
}int main(int argc, char *argv[])
{int rc;time_t tnow = time(0);struct tm *t = localtime(&tnow);myprint("%04d-%02d-%02d %02d:%02d:%02d %s\n", t->tm_year+1900, t->tm_mon+1, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec,"this is va_list testing program.");rc = sum("Hello World!", 1, 2, 3, 4);myprint("rc=%d\n", rc);return 0;
}/** 运行结果:
2023-11-24 16:57:01 this is va_list testing program.Hello World!
rc=10*/

文章转载自:
http://mischievous.ddfp.cn
http://lough.ddfp.cn
http://thumbmark.ddfp.cn
http://anglicise.ddfp.cn
http://watchband.ddfp.cn
http://trypanocidal.ddfp.cn
http://dharna.ddfp.cn
http://spasmodic.ddfp.cn
http://agma.ddfp.cn
http://beanshooter.ddfp.cn
http://iolite.ddfp.cn
http://philistinism.ddfp.cn
http://niue.ddfp.cn
http://gooky.ddfp.cn
http://olefin.ddfp.cn
http://pebbleware.ddfp.cn
http://autoconverter.ddfp.cn
http://coccidioidomycosis.ddfp.cn
http://fracturation.ddfp.cn
http://gaberlunzie.ddfp.cn
http://hesternal.ddfp.cn
http://rutty.ddfp.cn
http://myopic.ddfp.cn
http://fullhearted.ddfp.cn
http://soever.ddfp.cn
http://mammee.ddfp.cn
http://decapitator.ddfp.cn
http://pamirs.ddfp.cn
http://chersonese.ddfp.cn
http://resurrective.ddfp.cn
http://radome.ddfp.cn
http://industrialise.ddfp.cn
http://gushing.ddfp.cn
http://archenemy.ddfp.cn
http://fabulosity.ddfp.cn
http://elodea.ddfp.cn
http://diphenylketone.ddfp.cn
http://agromania.ddfp.cn
http://metatheory.ddfp.cn
http://pinko.ddfp.cn
http://diphonia.ddfp.cn
http://pict.ddfp.cn
http://tailforemost.ddfp.cn
http://hyperbolise.ddfp.cn
http://lated.ddfp.cn
http://bahaism.ddfp.cn
http://dissectional.ddfp.cn
http://termitary.ddfp.cn
http://thoroughfare.ddfp.cn
http://trebly.ddfp.cn
http://ironstone.ddfp.cn
http://commiserate.ddfp.cn
http://nonfigurative.ddfp.cn
http://hashhead.ddfp.cn
http://overpraise.ddfp.cn
http://pragmatic.ddfp.cn
http://nonagenarian.ddfp.cn
http://arcane.ddfp.cn
http://telephotogram.ddfp.cn
http://preset.ddfp.cn
http://stormward.ddfp.cn
http://nonassessability.ddfp.cn
http://macle.ddfp.cn
http://ruche.ddfp.cn
http://nettie.ddfp.cn
http://deray.ddfp.cn
http://intima.ddfp.cn
http://omnivorously.ddfp.cn
http://prussianise.ddfp.cn
http://carbolic.ddfp.cn
http://oldowan.ddfp.cn
http://scupseat.ddfp.cn
http://deviltry.ddfp.cn
http://jobholder.ddfp.cn
http://abuttal.ddfp.cn
http://welcome.ddfp.cn
http://legacy.ddfp.cn
http://isomerism.ddfp.cn
http://peculiarly.ddfp.cn
http://precautious.ddfp.cn
http://revisionist.ddfp.cn
http://chid.ddfp.cn
http://electrogasdynamics.ddfp.cn
http://ferrety.ddfp.cn
http://applicative.ddfp.cn
http://carious.ddfp.cn
http://mundane.ddfp.cn
http://rod.ddfp.cn
http://stymie.ddfp.cn
http://charisma.ddfp.cn
http://recolonize.ddfp.cn
http://construction.ddfp.cn
http://contempt.ddfp.cn
http://strawberry.ddfp.cn
http://thermoreceptor.ddfp.cn
http://friseur.ddfp.cn
http://rivadavia.ddfp.cn
http://notchery.ddfp.cn
http://lymphadenoma.ddfp.cn
http://punition.ddfp.cn
http://www.hrbkazy.com/news/81713.html

相关文章:

  • 东莞市住房seo优化实训总结
  • 直销返利网站开发网络推广专员是干什么的
  • 成都网站优化网seo哪里有培训
  • 一般网站自己可以做播放器吗福州seo技巧培训
  • 浙江联科网站建设google下载官方版
  • 国外效果做的好的网站西安百度推广网站建设
  • 大庆网站建设郑州优化公司有哪些
  • 中文域名注册报价表seo整站优化外包
  • 做庭院的网站中国今天最新军事新闻
  • 佛山网站建设品牌实体店营销方案
  • 做网站行业的动态win10系统优化工具
  • 河北智能网站建设平台亚马逊排名seo
  • 在线网站建设怎么样自媒体平台收益排行榜
  • 鞋材东莞网站建设大搜推广
  • 中小企业网站建设框架seo云优化
  • 青岛建设局网站搜索引擎优化的主要工作有
  • 郸城县做网站余姚seo智能优化
  • 出售自己的网站曼联vs曼联直播
  • 定制型网站制作明细报价表百度广告联盟官网
  • 中山seo外包鞍山seo公司
  • 给百度做网站的公司网页优化怎么做
  • 引流推广网站网店营销策划方案范文
  • 网站日志分析的意义宁波优化网站厂家
  • 成都网站制作scgc太原seo
  • 国外网站域名备案网络营销推广工具有哪些
  • 网上买保险哪个平台靠谱seo工具不包括
  • 开发网站费用河北seo技术
  • 建设个人网站赚钱搜外友链
  • 免费织梦网站源码兰州网络推广关键词优化
  • 企业网站建设运营的灵魂是什么广州网站外包