从参考手册中可以清楚地看出,s的内存布局struct
是未指定的(当repr
不使用该属性时)。此规则使编译器可以通过重新排序字段来更紧密地打包结构。
元组和元组结构的内存布局如何?它是如何(未)指定的,为什么?
从参考手册中可以清楚地看出,s的内存布局struct
是未指定的(当repr
不使用该属性时)。此规则使编译器可以通过重新排序字段来更紧密地打包结构。
元组和元组结构的内存布局如何?它是如何(未)指定的,为什么?
元组和元组结构的内存布局是未定义的,就像普通结构的布局一样,但有一个例外:
例外情况是单元元组 (
()
),它被保证为大小为零的类型,大小为 0,对齐方式为 1。
编译器可以在元组和元组结构中进行与在结构中相同的优化,它只需要对它们的匹配项重新排序即可。