gcc
GNU C-tillägg
Sök…
Introduktion
GNU C-kompilatorn har några coola funktioner som inte specificeras av C-standarderna. Dessa tillägg används kraftigt i systemprogramvara och är ett bra verktyg för prestandaoptimering.
Attribut packat
packad är ett variabelt attribut som används med strukturer och fackföreningar för att minimera minneskraven.
#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;
}
På min 64-bitars Linux,
- Strukturens storlek = 8 byte
- Storlek på strukturen foo_packed = 5 byte
packade attribut bromsar strukturens stoppning som kompilatorn utför för att upprätthålla minnesinställningen.
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow