나는 구조 정렬 '구현 특정'이해하지만, 예를 들어, 구조의 정렬을 계산할 수있는 간단한 방법이 있는지 궁금 :간단한 방법 (매크로?)을 사용하면 구조체 정렬을 알 수 있습니까?
typedef struct
{
char c;
int i;
} test;
if sizeof(test) - (sizeof(char) + sizeof(int)) == 0 means alignment is 1 byte;
if sizeof(test) - (sizeof(char) + sizeof(int)) == 1 means alignment is 2 bytes;
// ...etc...
위의 가정을 안정적으로 사실인가요가? 당신이 원하는 모든 좋은 첫번째 추측 인 경우
#INCLUDE 구조체 더미 { 숯 X; int i; }; size_t test_alignment = offsetof (struct dummy, i); 위 작업을 수행 할 수 있습니까? –
"작품"이 의미하는 바에 달려 있습니다. test_alignment를'struct dummy' 내부에'i'의 정렬로 설정합니다. 그것이 당신이 원하는 것을 원한다면, 확실히 작동합니다. –
그러면'int' 타입의 정렬을 테스트 할 것입니다. (정의 된 타입'test'의 정렬을 테스트하기를 원한다고 생각합니까?) – caf