С GCC вы не можете указать точную длину, но вы можете сделать так, чтобы она занимала самую короткую длину из -fshort-enums
. Пример:
#include <stdio.h>
typedef enum
{
f1, f2
} foo;
int main()
{
printf("%i\n", sizeof(foo));
return 0;
}
Компиляция:
gcc program.c -fshort-enums
Выход:
1
Однако, если вы когда-нибудь захотите сделать ссылку на что-либо, вы должны убедиться, что тот, кто смотрит на ваши заголовки, также использует -fshort-enums
, иначе он не будет совместим с ABI (и вы увидите несколько действительно забавных ошибок).