이유 :
#include <stdio.h>
#include <limits.h>
#include <inttypes.h>
int main() {
enum en_e {
en_e_foo,
en_e_bar = UINT64_MAX,
};
enum en_e e = en_e_foo;
printf("%zu\n", sizeof en_e_foo);
printf("%zu\n", sizeof en_e_bar);
printf("%zu\n", sizeof e);
}
4 8 8C 및 8 8 8C ++로 인쇄 합니까 (4 바이트 정수가있는 플랫폼에서)?
나는 UINT64_MAX할당이 모든 열거 상수를 적어도 64 비트로 강제하지만 en_e_foo평범한 C에서는 32로 남아 있다는 인상 을 받았다 .
불일치의 근거는 무엇입니까?