我用的是green hill 的multi编译器,但是在编译下面可变参数的代码时有bug,同样的code在gcc上就没问题。
我跟踪过汇编代码,基本确定是green hill整错了。 原因比较复杂,感兴趣的自己汇编看看
int put_strf (const char *fmt, ...)
{
ck_va_list args;
unsigned int printed_len = 0;
char * p;
char printk_buf[256];
p = printk_buf;
/* Emit the output into the temporary buffer */
ck_va_start(args, fmt);
printed_len = ck_vsnprintf(printk_buf, sizeof(printk_buf), (char *)fmt, args);
ck_va_end(args);
put_str(p);
return 0;
}
文章评论(0条评论)
登录后参与讨论