TI论坛
直播中

赵群山

7年用户 197经验值
私信 关注
[问答]

请问32位的机子里char类型是不是8位

在32位的机子里,一个地址应该是包含四个字节吧,那么char类型是不是还是8位呢,如果是,那么譬如我定义一个指针
char c[] = 'abc';
char  *ch = &c;
这样*(ch++)应该是指向下一个地址,值为b,这就跳过了3个字节(一个地址有四字节),如果说“b”这个值放在“a”字节的下一个字节,那他应该没有地址对应,*(ch++)就得不出字符b了。总结下问题,32位机里char类型是占一字节还是四字节?如果是一个字节,字符数组的相邻字符会不会隔着3个字节?
教用char类型的时候说它体积小,但我想如果8位以上的机用它不能省内存的话,字符以外的数我就不会再用char类型了

多谢解答

回帖(2)

朱虹博

2018-8-20 07:56:10
具体说的是哪款芯片?
在C6000上,32位机,但是一个地址只占一个字节,char就占用1个字节。ARM上也是这样。
在C2000芯片上,一个地址16位,char会占有整个16位。
举报

赵群山

2018-8-20 08:09:47
引用: Emily1225 发表于 2018-8-20 07:56
具体说的是哪款芯片?
在C6000上,32位机,但是一个地址只占一个字节,char就占用1个字节。ARM上也是这样。
在C2000芯片上,一个地址16位,char会占有整个16位。

明解,谢谢
举报

更多回帖

发帖
×
20
完善资料,
赚取积分