保证 #include , 1. %f,正常,浮点格式化正常, abc = 90.001 sprintf( tmp, "%f", abc); 2. %d, 只对 int16起作用,大宽度的会只存高两字节。 3. %u, 只对 uint16宽度的数起作用,大宽度的会只存高两字节。 4. %x, %X 只为16Bit宽度的数起作用,大宽度的会只存高两字节。 可能的原因是 dsp 2x中默认的int为16Bit。还有sprintf参数好像是传的指针或引用,即地址。 不妨用sprintf(tmp, "%.0f", float(abc)),来代替,且没有小数点。 使用sprintf,参数可以直接使用数字;但使用sizeof()作参数时,有时得不到想要的,可能是sizeof()为编译期指令,数据优化了? 5. 由于32Bit在dsp 28x中为long,故对32Bit int使用sprintf(tmp, "%ld", abc).
|