64位 长整形赋值给 8位char 类型出现的问题
1. 看下之前写的代码,i 是64位的,n 是8位的,导致一直有问题
int8_t n = 0; int64_t i = 0; for( i=0;i<44;i++) { //if( (lte_band_val & (1 << i)) != 0) //符合设置BAND的条件 if( (lte_band_val >> i) & 0x01) //符合设置BAND的条件 { band[n] = i + 1; sprintf(tmpString, "+QCFG: %d,%d,%d",i, n, band[n]); cpt_atCmdRespInfoText(engine, (char *)tmpString);
n++;
后来修改 int8_t i = 0; 问题解决