그때 나는 이와 같은 지금은 기능이 이러한 유형의구조체의 정렬 및 유형 재 해석
struct Pair{
A a;
B b;
};
을 나는 두 가지 유형 A와
B.
이 있다고 할 수 있습니다.void function(Pair& pair);
그리고 function
은 오직 한 쌍의 a
부분을 사용한다고 가정 할 수 있습니다.
그런 다음이 방법으로 함수를 사용하고 호출하려면 정의되지 않은 동작입니까?
A a;
function(reinterpret_cast<Pair&>(a));
나는 컴파일러가 구성원 후 패딩 바이트를 삽입 할 수 있지만 또한 첫 번째 멤버 전에 할 수 있다는 것을 알고?
함수가 'A'부분에만 액세스하는 경우 'A'입력 대신 'Pair' 입력을받는 이유는 무엇입니까? –
사실이 예제는 제 질문을 설명하기 위해 일반적인 것입니다. 이것이 정의되지 않았는지 알고 싶습니다. 그러나 일련의 일반 동작을 구현하고 동일한 서명이 있어야하는 함수 집합의 일부라고 가정 해 보겠습니다. – user183833
관련 항목 : http://stackoverflow.com/questions/15994237/how-is-is-standard-layout-useful – Mysticial