printf()之类的函数不定参数实现原理和方法

xuexi1028 2011-06-27 05:27:44
RT
不要用 C 带的那个API 函数 贴了绝对没分

我是想 知道原理,,,如果 哪个哥们 晓得 的 告诉下啊
分数不够在加
...全文
137 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuexi1028 2011-06-27
  • 打赏
  • 举报
回复
给位回答的多还行
改天给分
hu7324829 2011-06-27
  • 打赏
  • 举报
回复
看看这个http://www.cppblog.com/qiujian5628/archive/2008/01/21/41562.html
cppgp 2011-06-27
  • 打赏
  • 举报
回复
动态参数和函数调用压栈有关系。一般形式是:


void f(const char *fmt, ...)
{

void *start=fmt+sizeof(fmt); // 有可能是-,这个和压栈顺序有关系
// 例如windows下__cdecl / __stdcall
// analysis fmt
// 例如 %d 则取 *(int*)start; start=(char*)start+4;
// process ..
}

就想叫yoko 2011-06-27
  • 打赏
  • 举报
回复
http://hi.baidu.com/_soros521521/blog/item/5baf547a6a2b402c0dd7dae5.html
terhack 2011-06-27
  • 打赏
  • 举报
回复
可以搜下使用varargs.h来实现可变参数列表。

《C陷阱和缺陷》里有讲
ryfdizuo 2011-06-27
  • 打赏
  • 举报
回复

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧