gcc
GNU C-Erweiterungen
Suche…
Einführung
Der GNU C-Compiler verfügt über einige coole Funktionen, die nicht in den C-Standards festgelegt sind. Diese Erweiterungen werden häufig in Systemsoftware verwendet und sind ein hervorragendes Werkzeug zur Leistungsoptimierung.
Attribut gepackt
Gepackt ist ein variables Attribut, das bei Strukturen und Vereinigungen verwendet wird, um den Speicherbedarf zu minimieren.
#include <stdio.h>
struct foo {
int a;
char c;
};
struct __attribute__((__packed__))foo_packed {
int a;
char c;
};
int main()
{
printf("Size of foo: %d\n", sizeof(struct foo));
printf("Size of packed foo: %d\n", sizeof(struct foo_packed));
return 0;
}
Auf meinem 64-Bit-Linux
- Größe von struct foo = 8 Bytes
- Größe der Struktur foo_packed = 5 Byte
Gepacktes Attribut drosselt die Strukturauffüllung , die der Compiler zur Aufrechterhaltung der Speicherausrichtung durchführt.
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow