是否有任何扩展功能来指定每个编译器上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(你会看到一些非常有趣的错误)。