다음 코드 은 교차 컴파일 가능입니까? 즉메모리 정렬 보증
struct Foo {
alignas(1) char c1;
alignas(1) char c2;
alignas(4) int i;
};
static_assert(sizeof(Foo) == (sizeof(int) + 4), "No cross-compilable");
, 그것은 어떤 아키텍처/플랫폼에 대한 sizeof(Foo) == (sizeof(int) + 4)
보장인가?
엄밀히 말하면? 나는 말하지 않을 것이다. 정렬 지정이 패딩 옵션을 무효화한다고 생각하지 않습니다. – StoryTeller
@StoryTeller 나는 '+ 4'(즉, 패딩에 대해 '+ 2')를 고려했다. –
그래, 그게 문제 야. 패딩은 묶여 있지 않습니다. 지정한 금액을 초과 할 가능성은 없지만 실제로는 제한되지 않습니다. – StoryTeller