[英]why byte ordering (endianess) is not an issue for standard C string?
我的教授提到byte ordering (endianess)
对于standard C String
( Char arrays
)不是问题:
例如: char[6]="abcde";
但他没有解释为什么?
对此的任何解释都会有所帮助
Endianess 仅在您拥有多字节数据(如整数和浮点数)时才重要。 标准 C 字符串由 1 字节字符组成,因此您无需担心字节序。
一个char
只占用一个字节,这就是排序无关紧要的原因。 例如, int
有 4 个字节,这些字节可以按 little-endian 和 big-endian` 排列。
例如: 0x00010204
在内存中可以有两种排列方式:
04 02 01 00 or 00 01 02 04
作为单字节的char
将作为单字节提取到CPU
。 而String
只是一个char
数组。
内存存储的最小单位是 1 字节,如果你有一个 4 字节的值(例如:0x01234567)它将在连续位置按字节顺序排列和获取
大端:01 23 45 67 小端:67 45 23 01
而对于 1 字节值,它可以从一个内存位置本身获取,因为这是最小的内存块,不需要字节排序。
希望这可以帮助 !
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.