是否有任何扩展功能来指定每个编译器上Cenum的大小?
海合会
叮当声
MSVC公司

最佳答案

使用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(你会看到一些非常有趣的错误)。

10-04 16:11