2.va_start(ap,parmN)中parmN为可变参数前的一个固定参数. 3.可变参数的个数不确定,完全由程序约定. 4.可变参数的类型不确定,完全由va_arg(ap,type)中的type指定,然后就把参数的类型强制转换. 而printf()中不是实现了识别参数吗?那是因为函数 printf()是从固定参数format字符串来分析出参数的类型,再调用va_arg 的来获取可变参数的.也就是说,你想实现智能识别可变参数的话是要通 过在自己的程序里作判断来实现的. 5.编译器对可变参数的函数的原型检查不够严格,对编程人员要求很高 |
|