在C中,在结构中定义字段的顺序就是它们在内存中实例化的顺序。考虑到内存对齐,下面的结构在内存中的大小为8字节,但如果字段颠倒,则只有6字节,因为不需要任何对齐填充。s { /* 2 bytes of padding to align a 64 bit integer */}
这种排序保证存在于C结构、C++类(和结构)和Objective-C类中。或者(假设该<e
我正在检查一个C程序的汇编语言输出,该C程序是我正在为ARM Android平台使用GCC (包含在Android NDK中的版本)编译的。我指定的ARM指令集长度是4字节,而不是THUMB,但令人惊讶的是,发出的汇编语言代码将函数与2字节的边界对齐!我试图使用- force functions=4强制对齐,但它被忽略了。LOCAL_ARM_MODE := arm