어떻게 다운로드합니까 크기의 구조체입니다?

struct a
{
    char *c;
    char b;
};

스이제로프 (a) 란?

질문에 대한 의견 (1)
#include 

typedef struct { char* c; char b; } a;

int main()
{
    printf("sizeof(a) == %d", sizeof(a));
}

저도 &quot 스이제로프 (a) = 32 비트 시스템에 대한 8&quot.;; 구조의 포장 전체 크기에 따라 달라질 수 있습니다. 저의 경우는 c& # 39, & # 39, 포장, 기본값입니다 도왔으매 4 입니다 b& # 39, & # 39 는 4 바이트입니다. 이를 위해 다음 배수인지 재연됩니다 패딩 바이트입니다 는 하나의 바이트입니다 것가운데 3, 4: 8. 이 경우, 대부분의 컴파일러에도 변경할 수 있는 방법을 변경하십시오 해버린다는거, 예를 들어, 므스티스 의 포장 있다.

#pragma pack(1)
typedef struct { char* c; char b; } a;

보기입니다 스이제로프 (a) = 5. 이렇게 하면 먼저 라이브러리란 헤더도 포장 재설정하려면 조심해!

해설 (4)

일부 다른 내용과 질문에 답한 있는 대부분의 시스템에서 부재 혹은 컴파일러 옵션을 pragma 규모는 최소 6, 8, 대부분의 32 비트 시스템 구조 및 적립율은 바이트입니다 바이트입니다. 64 비트 시스템을 위해, 그 크기는 16 바이트 쉽게 사용할 수 있다. 맞춤에는 놀이를하고 맺을 않습니다. 항상. 이 같은 단일 구조체입니다 수 있음을 배열입니다 스이제로프 할당할 수 있는 그 크기 및 개별 소속 어레이입니다 정렬되고 질문이예요 프로세서에 대한 충분히 있다. 따라서 크기가 다른 경우 등 모두 5 는 다음 두 가지 가설을 구조체입니다 배열입니다 이러한 구조를 약간만이라도 10 바이트입니다 길고, 이 두 번째 어레이입니다 챨 포인터입니다 멤버 약간만이라도 정렬되고 협력하였습니다 주요 병목 현상을 일으킬 수 있는 홀수입니다 바이트입니다 죽이려하겠어요 (대부분의 프로세서입니다) 의 성능.

해설 (2)

수동으로 카운트입니다 스케쳐내 정보기술 (it) 의 크기가 구조체입니다 바로 그 후 각 데이터 멤버의 크기를 차지하는 비중은 맞춤에는. # 39 의 there& 마법도 오버헤드에 바이트입니다 kingdome. seattle. 구조체입니다.

해설 (0)
  • 정확한 값은 스이제로프 (a) *. 이 경우 및 solaris. 것은 모험을 수도 있습니다, no no less 2 보다 최소 16.
해설 (1)

이 방법 및 아키텍처입니다) 에서는 기본 데이터 유형에 따라 달라질 수 있습니다. 또한 이 시스템에 필요한 자연 맞춤에는 여부에 따라 달라집니다.

해설 (0)

그러니까 & # 39, & # 39, 의심이 struct& # 39, & # 39 아닌 strict& # 39, 및 char& # 39;; # 39, & # 39, 대신 Char&.

크기는 적립율은 구축상의 종속적입니다. 대부분의 32 비트 시스템, it 에 대한 포인터, 하나는 될 가능성이 5 - 4 바이트입니다 챨. # 39 는 목마르겠구나 놀이를하고 맺을 맞춤에는 don& 내가 안 믿는다. C& # 39, & # 39 스왑된 경우. 그러나, b& # 39, & # 39 과 크기가 8 바이트입니다 성장할 수 있습니다.

좋아, 전화했는데 아웃해야 (g++ 4.2.3 함께 - g 옵션), I get 8.

해설 (1)

스이제로프 가 32 비트 시스템에 대한 구조 제공하십시오 8 바이트입니다 도왔으매 크기와 구조 2 배수인지 됩니다. 따라서 개별 구조를 http://ipw2100.sourceforge. 올바른 바이트입니다 경계를 배열입니다 선언할 때 구조. 이는 통해 달성됩니다 패딩 구조 및 3 바이트입니다 끝에.

이후 계속 구조 경식도 포인터입니다 경우 크기가 8 바이트입니다 챨 것이라고 밝혔다. 그러나 3 바이트입니다 패딩 다시그것들을 추가되었습니다 계속 포인터 (이는 요소점과 4 바이트) 로 정렬되고 4 바이트 주소 경계.

이 규칙은 에로남이네 요소이면 합니다 이는 그들의 바이트입니다 크기와 구조 자체가 열린 오프셋된 배수인지 크기의 합니다 이는 배수인지 2.

해설 (1)

하지만 내가 solaris. 그러니까 구조체입니다 아니라 32 비트 시스템에서 사용할 수 있고, 엄격한 it& # 39, ll, 이 경우 5 개 또는 8 개 바이트입니다 따라 컴파일러는 패딩 구조체입니다.

해설 (0)