#pragma 지시문을 사용하여 코드를 작성했지만 정렬 방법을 이해할 수 없었습니다. 우분투에서 gcc를 사용하고 있습니다. #pragma pack in c를 사용했지만 이해할 수 없었습니다
#include<stdio.h>
#define MALE 0;
#define FEMALE 1;
#define SINGLE 0;
#define MARRIED 1;
#pragma pack(3);
int main()
{
struct emp
{
unsigned gender :1;
unsigned mar:1;
unsigned hobby:1;
unsigned scheme :1;
};
struct emp e;
e.gender=MALE;
e.mar=SINGLE;
e.hobby=1;
e.scheme=1;
printf("size of %d",sizeof(e));
return 0;
}
내가 1으로의 #pragma 팩을 사용
, 크기는 1 나옵니다, 2 크기의 #pragma 팩 2로 나오고, 3 것이 4당신이 무슨 일이 일어나고 있는지 말해 줄 수 있어요 ? 만약 내가 그것을 사용하지 않으면 여전히 4가 온다.
#pragma pack(1)
과 #pragma pack(2)
의 차이점은 무엇입니까?
3은'pragma pack'에 대해 유효하지 않습니다. (http://msdn.microsoft.com/en-us/library/2e70t5y1 (v = vs80) .aspx) – pmr
#pragma pack (1)을 쓸 때 그 사실을 알고 싶습니다. #pragma (2)를 쓰면, 차이점은 무엇입니까? –
'# define' 라인의 마지막에 세미콜론을 사용하고 싶지는 않습니다. 아마도'#pragma' 줄 끝에 세미콜론을 넣지 않기를 원할 것입니다. –