Chinaunix

标题: 可变参数问题请教 [打印本页]

作者: swen96    时间: 2003-03-24 14:49
标题: 可变参数问题请教
大虾们:
        C语言中的可变参数怎么个用法?比如说下面的函数
        void foo(char *fmt, ...)
        编译器是如何来实现的?
作者: menp9999    时间: 2003-03-24 17:06
标题: 可变参数问题请教
原帖由 "swen96" 发表:
大虾们:
        C语言中的可变参数怎么个用法?比如说下面的函数
        void foo(char *fmt, ...)
        编译器是如何来实现的?

虽然说是可变参数,但是涵数里肯定可以处理在实际调用时的每一个参数的,C语言是右压栈,就是因为支持可变参数的。因为他假设在CALL指令执行之前所压栈的实参的顺序是固定的,也就是说,第一个参数肯定是最后一个压栈的,以此来定位ARG。当然没有添以实参的虚参肯定在本次调用用不到,否则要么C编译器莫认是空,要么就会得不到你所要求的结果。
作者: 无双    时间: 2003-03-24 18:09
标题: 可变参数问题请教
精华区的va_list 用法就是可变参数用法




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2