CCS3.3邪门问题

CCS3.3邪门问题

问: CCS3.3邪门问题 问者: 400080

在main里定义了一个变量,

unsigned char u8Num=0;

程序里对这个变量作了累加,u8Num++;

把这个数通过板上的DA输出,跑了会,发现程序跑得不太对劲,打断点一看,u8Num居然是个大于255的数。

怎么会是这样呢?开发环境用的是CCS3.3。


答: 回复: CCS3.3邪门问题 答者: 1389816

楼上正解。

在C28x上,不同的数据类型对应的位数不一样,因为C28x是32位的系统,它最小只能支持16位,下面是对应关系:

char, short, int:                16-bit

long, float, double:         32-bit

long long, long double: 64-bit


问: 回复: CCS3.3邪门问题 问者: 400080

查了下compilerUserGuide,应该是这个原因,unsigned char对c2000是16bits。


问: 回复: CCS3.3邪门问题 问者: 1818726

C2000中unsigned char是16位的