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建立一个简单工程,发现都能正常执行。
为什么会出现这种情况,我担心的是,是否有其他函数也存在这种情况。