打印

关于宽字符打印的大小问题 unicode wPrintf

[复制链接]
2206|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hebeijiang|  楼主 | 2013-1-29 09:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hebeijiang 于 2013-1-29 09:38 编辑

因项目用到unicode的字符打印,
使用vswprintf来处理,该如何确定 size_t 的值:
int vswprintf(wchar_t * __restrict /*s*/, size_t /*n*/,
                  const wchar_t * __restrict /*format*/, __va_list /*arg*/) __attribute__((__nonnull__(3)));

在以前可以这样写:
void Printf(char *fmt,...)   
{   
    va_list ap;
    char string[255];
    va_start(ap,fmt);   
    vsprintf(string,fmt,ap);   
    Uart_PrintStr0(string);   
    va_end(ap);   
}
现在改为:
void wPrintf(wchar *fmt,...)   
{   
    va_list ap;
    wchar string[255];
    va_start(ap, fmt);   
    vswprintf(string, size_t, fmt, ap);     //这的 size_t 我要如何获得?
    Uart_PrintStr0(string);   
    va_end(ap);   
}

相关帖子

沙发
hebeijiang|  楼主 | 2013-1-29 22:10 | 只看该作者
理解错误,原来size_t只是估计用到的最大值,并不是fmt的实际大小。
结贴

使用特权

评论回复
板凳
jlass| | 2013-1-30 12:03 | 只看该作者
我来蹭分

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

158

帖子

1

粉丝