#pragma 많이 사용하나요?

어떤날의 이미지

잡지를 보다가 프로그램 팁중에 #pragma 를 이용한 것이 있었습니다
어디서 보긴 봤던것 같은데...

typedef struct _TMP{
	int n1;
	long l;
	char a[1];
	short s;
	int n2;
	char b[2];
} TMP;

int 
main()
{
	TMP tmp;
	
	printf("Size : %d", sizeof(TMP));
	return 0;
}

int형이 4바이트라고 했을때 TMP의 사이즈는 17 바이트 입니다.
하지만 위의 코드를 실행하면 20 바이트가 출력됩니다.

이 문제를 해결하기 위해
코드 선두에
#pragma pack(1)
을 선언하고 다시 실행하면 17바이트가 출력되더군요.

실제로 #pragma 가 많이 사용되는지 궁금합니다.
전 C만 쓰고 있는데.... gcc 에서도 잘 되더군요.

그럼...좋은 하루들 되세요~

pynoos의 이미지

다른건 몰라도 저건 많이 사용합니다.

많은 컴파일러에서 공통으로 들어 있더군요

exman의 이미지

VC 에서도 특정 경고를 무시할때 써본적이 있습니다.

아직 모르는 부분이 너무 많아서, 정확한 용도는 잘 모르겠습니다.

pynoos의 이미지

#pragma 는 compiler에게 보내는 일종의 file 단위 option입니다.

따라서 compiler마다 다릅니다.

cedar의 이미지

#pragma 의 세부 옵션은 컴파일러마다 다르지만,
#pragma pack 과 같이 컴파일러마다 비슷한 경우도 많죠.

다음 링크는 Borland C++Builder/Kylix 컴파일러의 #pragma에 대한 설명입니다.
http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=106

#pragma가 실제 어떤 경우에 쓰이는 지에 참고가 될 겁니다.