如下图所示,将参数定义为char类型并不会节省空间,依然会按照4字节压栈传参。最后一行的堆栈平衡也很明显的。
本机尺寸:如果本机是32位的,那么对32位的数据支持最好,如果是64位的,那么对64位的支持最好。编译器也遵守了这个规则。
然而在对待数组时则不是如此。在x86架构下,int类型数组按照4字节为单位分配空间不变。char数组为分配内存的基本单位是一个字节,然而元素个数不是4的整倍数时,最后一个元素的4字节空间会有剩余,总体空间大小也会是4的整倍数。
如下图所示,将参数定义为char类型并不会节省空间,依然会按照4字节压栈传参。最后一行的堆栈平衡也很明显的。
本机尺寸:如果本机是32位的,那么对32位的数据支持最好,如果是64位的,那么对64位的支持最好。编译器也遵守了这个规则。
然而在对待数组时则不是如此。在x86架构下,int类型数组按照4字节为单位分配空间不变。char数组为分配内存的基本单位是一个字节,然而元素个数不是4的整倍数时,最后一个元素的4字节空间会有剩余,总体空间大小也会是4的整倍数。