printf参数数量在4个以下时怎么处理
打印函数printf的实现是根据va_*宏来实现的,但是va_*宏对参数的解析是根据printf调用时参数入栈后在栈中的位置来解析的,当参数较少时(4个以下),传参是用寄存器来保存参数的,没有入栈,这时printf是怎么处理的?
[解决办法]
而printf是 __cdecl,这个可以控制是从左到右压栈的..
发布时间: 2012-05-02 15:36:04 作者: rapoo
printf参数数量在4个以下时怎么处理
打印函数printf的实现是根据va_*宏来实现的,但是va_*宏对参数的解析是根据printf调用时参数入栈后在栈中的位置来解析的,当参数较少时(4个以下),传参是用寄存器来保存参数的,没有入栈,这时printf是怎么处理的?
[解决办法]
而printf是 __cdecl,这个可以控制是从左到右压栈的..