में डेटाटाइक्चर/वर्ड संरेखण पैडिंग को अनुकूलित करना सी ++ में मैंने जो सीखा है, मुझे लगता है कि मुझे लगता है कि यह पैडिंग है जो दोनों structs के उदाहरणों के आकार में अंतर का कारण बनता है।गोलांग
type Foo struct {
w byte //1 byte
x byte //1 byte
y uint64 //8 bytes
}
type Bar struct {
x byte //1 byte
y uint64 //8 bytes
w byte// 1 byte
}
func main() {
fmt.Println(runtime.GOARCH)
newFoo := new(Foo)
fmt.Println(unsafe.Sizeof(*newFoo))
newBar := new(Bar)
fmt.Println(unsafe.Sizeof(*newBar))
}
आउटपुट:
amd64
16
24
- वहाँ एक बुनियादी नियम यह जब struct सदस्यों को परिभाषित करने का पालन करने के है? (प्रकारों के आकार के आरोही/अवरोही क्रम की तरह)
- क्या कोई संकलन समय अनुकूलन है जिसे हम पास कर सकते हैं, जो स्वचालित रूप से इसका ख्याल रख सकता है?
- या मुझे इस बारे में चिंतित नहीं होना चाहिए?
मैं एक उदाहरण है कि कुछ ऐसी जानकारियां दी https://play.golang.org/p/dNWspo2Dxv उपलब्ध करा सकता है बनाया – jpgerek