doc文档 va-list用法

教育专区 > 幼儿教育 > 幼儿读物 > 文档预览
5 页 721 浏览 0 收藏 4.9分

摘要:VA_LIST是在C语言中解决变参问题的一组宏VA_LIST的用法:(1)首先在函数里定义一具VA_LIST型的变量,这个变量是指向参数的指针(2)然后用VA_START宏初始化变量刚定义的VA_LIST变量,这个宏的第二个参数是第一个可变参数的前一个参数,是一个固定的参数。(3)然后用VA_ARG返回可变的参数,VA_ARG的第二个参数是你要返回的参数的类型。(4)最后用VA_END宏结束可变参数的获取。然后你就可以在函数里使用第二个参数了。如果函数有多个可变参数的,依次调用VA_ARG获取各个参数。VA_LIST在编译器中的处理:(1)在运行VA_START(ap,v)以后,ap指向第一个可变参数在堆栈的地址。(2)VA_ARG()取得类型t的可变参数值,在这步操作中首先apt=sizeof(t类型),让ap指向下一个参数的地址。然后返回apsizeof(t类型)的t类型*指针,这正是第一个可变参数在堆栈里的地址。然后用*取得这个地址的内容。(3)VA_END(),X86平台定义为ap=((char*)0),使ap不再指向堆栈,而是跟NULL一样,有些直接定义为((void*)0),这样编译器不会为VA_END产生代码,例如gcc在Linux的X86平台就是这样定义的。要注意的是:由于参数的地址用于VA_START宏,所以参数不能声明为寄存器变量,或作为函数或数组类型。使用VA_LIST应该注意的问题:(1)因为va_start,va_arg,va_end等定义成宏,所以它显得很愚蠢,可变参数的类型和个数完全在该函数中由程序代码控制,它并不能智能地识

温馨提示:当前文档最多只能预览 5 页,若文档总页数超出了 5 页,请下载原文档以浏览全部内容。
本文档由 匿名用户2022-09-03 23:15:55上传分享
你可能在找
  • 当你的函数的参数个数不确定时,就可以使用上述宏进行动态处理,这无疑为你的程序增加了灵活性。Example:CStringAppendString(CStringstr1,...) :参数的结束标志,十分重要,在实际中需自行指定{res+=str;str=va_arg(marker,CString);//取得下一个指针}va_end(marker);//结束,与va_start合用returnres
    4.9 分 5 页 | 29.00 KB
  • 当你的函数的参数个数不确定时,就可以使用上述宏进行动态处理,这无疑为你的程序增加了灵活性。Example:CStringAppendString(CStringstr1,...) :参数的结束标志,十分重要,在实际中需自行指定{res+=str;str=va_arg(marker,CString);//取得下一个指针}va_end(marker);//结束,与va_start合用returnres
    4.8 分 5 页 | 29.00 KB
  • /******Step2******///此时ap指向第一个可变参数//调用va_arg取得里面的值Typexx=va_arg(ap,Type);//Type一定要相同,如://char*p=va_arg (ap,char*);//inti=va_arg(ap,int);//如果有多个参数继续调用va_arg/******Step3******/va_end(ap);//Forrobust!}
    4.9 分 6 页 | 33.00 KB
  • /******Step2******///此时ap指向第一个可变参数//调用va_arg取得里面的值Typexx=va_arg(ap,Type);//Type一定要相同,如://char*p=va_arg (ap,char*);//inti=va_arg(ap,int);//如果有多个参数继续调用va_arg/******Step3******/va_end(ap);//Forrobust!}
    4.7 分 6 页 | 33.00 KB
  • UPS容量单位VA和W的区别•瓦特W值和VA值的关系•UPS制造商用W表示容量,实际上指的是VA值•大多数计算机设备用VA表示容量、VA值表示额定•举例•后备式UPS•在线式UPS•在线互动式UPSUPS 容量VA和W的区别很多人搞不清楚应该用瓦牡学应该用伏安来表示UPS的容量。 小容量的UPS(小于1000VA)用W表示容量,容量在1KVA ̄500KVA的UPS都用VA而不是W来表示容量。
    4.7 分 7 页 | 24.50 KB
  • DuØA,vA!D(NAFLD)Œ¼ƒmgÇ5ZNA!D,¶î‡ˆ¬N­Ù0«¡xŒ°±æ®。œŒNAFLD0_:’A„sU,Û¶«¡Žçqi2s,âpûj¯°†Õ。 ƒÈ<=°±Gñ±êeƒ«¡i28ü¢Ùܨ넜v,L¦8û©”NAFLD“þƒ(ŸA,vA!D(MAFLD)。 :#$%DuØA,vA!D;(ŸA,vA!D;:’A&'()*R575.5+,-.
    4.7 分 4 页 | 896.07 KB
  • 猿圈www.oxcoder.comListView动态增、删数据知识解析当Adapter里封装的数据改变时,需要调用BaseAdapter的notifyDataSetChanged()方法来通知ListView 如果使用的是ArrayAdapter,可以采用方法2:使用ArrayAdapter的add()/remove()/clear()方法来操作数据,配合ArrayAdapter的setNotifyDataSetChanged (true)使用。
    4.6 分 5 页 | 269.94 KB
  • IPS硬屏与VA软屏(三星S-PVA/台湾友达MVA等)全PK市面上的液晶屏可分为三类:IPS屏、VA屏和CPA屏(ASV屏),这三种屏幕的代表厂商分别是LG(原LPL)、三星SDI/台湾友达,以及日本的夏普 由于采用夏普CPA技术的厂商数量较少,因此液晶电视面板上主流的屏幕种类还是IPS和VA两种。如果我们用手指轻轻压一下VA屏幕的表面,就会发现手指周围会产生类似水波纹状图案,并产生一种下陷的感觉。 在显示画面的时候,这些液态晶体在驱动电压的作用下,通过一定范围内运动,影响背光的通过状况,从而产生画面的变化。而IPS和VA屏在排列方式上的差异,才是造成他们硬度区别重大的根本原因。
    4.8 分 6 页 | 290.05 KB
  • 鉴别性心房超速起搏后的VA关系:电生理室一种新的房速诊断工具应用VA关系诊断房速。介绍:尽管近年来临床电生理取得很多进展,但对起源于Koch’s三角区的房速的诊断仍有难度。 我们寻找能在电生理室快速准确诊断房速的新方法。 方法:本研究包括62种室上性心动过速,其中房速18种(10种起源于Koch’s三角附近),房室结折返性心动过速(AVNRT)32种,顺向性房室折返性心动过速(ORT)12种。
    4.7 分 13 页 | 478.50 KB
  • 1staticuser-binditem(s)added.二、DHCP地址池中IP地址与Mac地址绑定[SW1]ippool192network[SW1-ip-pool-192network]gateway-list 192network]excluded-ip-address[SW1-ip-pool-192network]leaseday0hour12minute0[SW1-ip-pool-192network]dns-list
    4.9 分 2 页 | 49.50 KB
本站APP下载(扫一扫)
活动:每周日APP免费下载全站文档
本站APP下载
热门文档