va_start & va_arg.vsdx

上传:liulinzhong 浏览: 16 推荐: 0 文件:VSDX 大小:21.81KB 上传时间:2020-12-11 14:41:32 版权申诉
1 va_start宏中,通过&(A)取得的就是形参fmt变量的地址,在示例中就是栈中的0x100地址 然后在该地址的基础上,就可以计算出可变参数的起始位置,也就是0x104地址 2 va_arg宏则是根据可变参数的类型,逐个遍历可变参数,此时需要格式字符串标识的类型与实际可变参数的类型一致,否则会解析错误 3 由于va_start & va_arg的运行过程高度依赖参数入栈的顺序(只有函数参数是从右向左入栈时,根据"sdc"字符串的解析才是正确的),这就体现了对编译器设置入栈规范的重要性。
上传资源
用户评论