struct
은 항상 해당 구조체의 가장 큰 정렬 멤버로 정렬되어 있습니까? 그렇지 않은 경우 gcc 관련 확장을 사용하여 자동으로 어떻게 적용 할 수 있습니까? (나는 __attribute((aligned(...)))__
을 알고 있지만, 정렬은 명시 적으로 지정되어야한다).구조체와 정렬 된 멤버의 C++ 정렬
이 동작은 c99, C++ 99 및 C++ 11간에 차이가 있습니까? C++ 11에는 정렬 적용을위한 몇 가지 추가 조항이 있습니까?
예 : 다음 코드와 , Foo
것 자체가 자동으로 8 바이트 정렬, 아니면 명시 적으로뿐만 아니라 그것을 정렬해야 할 수?
struct Foo{
int i __attribute__((aligned(8)));
};
정확히 묻는 이유는 무엇입니까? –
@Basile : 예제를 추가했습니다. – eudoxos
복합 유형의 정렬은 실제로 가장 큰 구성원의 정렬입니다. 이러한 유형의 배열을 생각해보십시오! –