米尔科技提醒您:您的浏览器版本过低或者使用了兼容模式,为了获得更好的浏览体验,建议使用IE10以上的浏览器或使用极速模式。 请升级浏览器以获得更好的体验!

MDK-ARM中国版支持 unicode 字符方法

问题类别: > 浏览次数:5747
发布日期:2012/4/23 17:35:57 文章来源:米尔科技
回复日期:2020/12/20 9:39:05

环境说明

RealView MDK中国版3.05以上

分析描述

当编译如下的测试程序时: void wide_ch_test(void) { wchar_t str1[] = L"Size of message is: "; wchar_t str2[80]; swprintf(str2,sizeof(str2)/sizeof(wchar_t),L"%s",str1); gputsw(str2); } swprintf函数调用这一行,编译提示警告 warning: #181-D: argument is incompatible with corresponding format string conversion

问题解答

      问题分析:MDK-ARM中国版支持宽字符,但要使用正确的格式字符串。
      操作步骤:
      将"%s"改为 "%ls",在测试程序中将swprintf函数调用语句修改为:
      swprintf (str2, (sizeof(str2)/sizeof(wchar_t)), L"%ls", str1);