关于zstack中sprintf函数异常
IAR 8.30,使用zstack home 1.2.1,协议栈不做任何修改,只增加如下两个sprintf语句(位置任意,只要能执行到就行),发现参数为%d的sprintf执行正常,而参数为%u的sprintf执行错误。
char str_test[10];
unsigned int int_test = 123;
sprintf( str_test, "%d,", int_test ); //执行正常,输出字符串“123”
sprintf( str_test, "%u,", int_test ); //执行错误,输出字符串“u”
脱离zstack,用IAR建立一个简单工程,发现都能正常执行。
为什么会出现这种情况,我担心的是,是否有其他函数也存在这种情况。
自己顶一下,求解答。
对比下IAR的配置是否一样
我是在zstack home 1.2.1的..\HomeAutomation\SampleThermostat上进行的测试,zstack是刚安装,程序、IAR8.30配置都没有作任何修改。你也可以试一下。
用我同时的电脑+IAR试了一下,也是一样的问题。能否确认一下。
没人答,是逼我用改用 itoa() 函数吗
顶一下,我也遇到类似的问题。
不过我的情况是:
同样的工程,用 iar 8.1的sprintf 打印 %d %x %u都正常
但是后来电脑换了win10,装了iar 9.2,期间参考vv的方法改了http://www.deyisupport.com/question_answer/wireless_connectivity/zigbee/f/104/t/59042.aspx
工程能正常编译,但是sprintf 打印异常,%d正常,其他打印出来的,对应结果是%x ---> x 、%u ---> u 等等,找不到什么原因,求解,感谢。
有谁知道什么原因吗?
IAR工程中的library options设置