底层会对长度做内存对齐,大概是8字节。18字节经过对齐处理后,是24字节,也就是可以保存24字节长度的字符串 为啥要内存对齐,这要说到 CPU 架构,目前 Intel/AMD 的 x86/x86-64,即使内存是不对齐的也没关系,而ARM平台,一旦传给CPU未对齐的指针会直接报内存总线错误,然后程序立即崩溃。所以是为了兼容ARM平台。
底层会对长度做内存对齐,大概是8字节。
18
字节经过对齐处理后,是24
字节,也就是可以保存24
字节长度的字符串为啥要内存对齐,这要说到
CPU
架构,目前Intel/AMD
的x86/x86-64
,即使内存是不对齐的也没关系,而ARM
平台,一旦传给CPU
未对齐的指针会直接报内存总线错误,然后程序立即崩溃。所以是为了兼容ARM
平台。