EMBEDDED TOOLKIT
SYSTEMS R&D // DEV_TOOLS SUITE
Narzędzia (65)
struct padding memory layout
SYSTEM ONLINE
Definicja Struktury (C/C++)
Układ Pamięci (Memory Layout)
sizeof(struct) = 12 bajtów+0
id (char)
1 b
+1
PADDING
3 b
+4
temperature (int)
4 b
+8
humidity (short)
2 b
+10
status (char)
1 b
+11
TRAILING PADDING
1 b
📖 Struct Padding & Alignment
Kompilatory C/C++ dodają puste bajty (padding) między polami struktury, aby wyrównać je w pamięci do granic wielokrotności słowa maszyny (np. 4 bajty w ARM 32-bit). Zwiększa to prędkość odczytu sprzętowego kosztem marnowania pamięci RAM.
- Padding: Marnuje pamięć. Aby go zmniejszyć, grupuj typy od największego do najmniejszego (np. pointery/long -> int -> short -> char).
- #pragma pack(1): Wymusza brak paddingu. Idealne, gdy kopiujesz strukturę prosto przez UART lub uDPA. Uwaga: W architekturach ARM (np. Cortex-M0) nienaturalny dostęp (Unaligned Access) może wywołać HardFault!