안녕하세요. 항상 도움 많이 얻어가는 사람입니다.
이번에도 꼭 도움 좀 부탁드립니다.
이번에 공무원을 준비하면서 문제를 풀어보고 있는데 다음과 같은 문제가 있습니다.
struct st {
int a;
union {
int b;
long c;
};
};
여기서 int 는 4byte, long 은 8byte 라고 가정했을 때,
sizeof(st) 를 하게 되면 결과값이 16이 나오던데 이게 맞는 것인지요?
문제 자체에 alignment size 에 대한 언급은 없습니다.
처음에는 alignment 값이 시스템의 word size 에 맞춰서 결정되는 줄 알았는데
다른 글들을 찾아보니 컴파일러가 임의로 결정할 수도 있더군요.
질문1. alignment size 결정에 word size 와 컴파일러 둘 다 영향을 미칠 수 있는지요?
질문2. 위 문제에서 답이 12가 될 가능성은 없는 걸까요?