C

- #pragma -

룸훼훼 2010. 10. 20. 20:09
반응형
일단 전처리 명령어 인것을 알아두자.

컴파일할대 플랫폼이 틀려지거나 CPU가 틀려지건자 하면 컴파일 옵션을 주게되는데
pragma 가 그런 역활을 한다.

옵션을 보면

once : 해당 소스가 한번만 include되게 하여 여러번include되는것을 컴파일러 차원에서 막아준다.
즉 컴파일 시간을 줄일수 있다.

comment(lib, *) : comment로 사용할수 있는 명령은 여러개가 있는데 그중 대표적인것이 lib
이므로 해당 라이브러리를 링크 시켜준다.

data_seg : dll에서 데이터를 공유하고자 할때 사용된다.

warning : 특정 warning을 체크하지 않는다. 예)warning(disable : 4705)  => 4705번 warning은
나타자지 않는다.

message : 컴파일시 특정 문장을 표시한다.
예)message("이건 아닌 #pragma message야")
 
pack : 변수정렬을 인위적으로 변경시킨다. 보통은 4byte로 지정되어 있다.
예)#pragma pack(1)의 예

typedef struct test
{
char   A;
char   B;
int      C;
char*  D;
int      E;
}test;

이렇게되면 14byte 같지만 실제로는 16byte를 차지한다.(sizeof 해보면됨)
이럴경우 pack을 사용하는데

#pragma pack(1)
typedef struct test
{
char   A;
char   B;
int      C;
char*  D;
int      E;
}test;
#pragama pack

이런형식으로 사용하면 된다. 그런후 sizeof를 해보면 14byte를 나타 내게될 것이다.

기타 pack (push, n) / (pop)

반응형

'C' 카테고리의 다른 글

- 동적배열 - malloc()  (0) 2010.10.21
- 함수 포인터 , void형 포인터 -  (0) 2010.10.20
- 비트 연산자 -  (0) 2010.10.18
- goto문 -  (0) 2010.10.18
===== 웹 컴파일러 ======  (0) 2010.09.28