C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[35568] Re:Re:Re:extern PACKAGE TEmpDAO *EmpDAO;에서...
수야!╋ [sooya23] 1041 읽음    2004-06-11 10:49
수야랍니다.

이곳저곳 뒤져보고 읽어보고 해서 가장 설명이 잘 된것 두개를 발췌해왔습니다.


extern


프로그램을 작성할때 보통 모듈별로 프로그래밍을 하다보면 화일을 여러개로

나눠서 프로그래밍을 하게 됩니다. 그러다보면 전역변수를 사용할때도 있고

지역변수를 사용하는 경우도 있지만 전역변수의 경우에는 주로 그 쓰임이 여러

모듈에서 같은 데이터를 사용하기 위해서 인데 이걸 각각의 모듈에다 선언을

한다면 메모리 낭비 일뿐만 아니라 같은 데이터를 사용할 수도 없게 됩니다.

그걸 방지하기 위해 다른 화일에 선언한 전역변수를 이 화일에 있는 함수에서

사용하겠다고 컴파일러에 알려주는 것이 extern 입니다.


#pragma




#pragma는 #include나 #define처럼 컴파일러(번역기)에게 특별한 명령을 내릴때 사용하는 컴파일러 지시자입니다. 이 #pragma는 단독으로 사용되지 않고 반드시 뒤에 하나 이상의 단어를 사용해서 나타냅니다.

#pragma는 컴파일러 지시자의 기능을 확장하는 것이라고 생각할 수 있습니다. 이를테면 C/C++ 언어 표준에 등장하지는 않지만 각각의 컴파일러 회사들마다 나름대로의 기능을 구현하기 위해서 사용하는 경우가 많습니다. 말하자면 이 #pragma 지시자는 확장 컴파일러 지시자인 셈입니다. 따라서 #pragma는 컴파일러 회사마다 독특한 여러 가지 지시 사항들을 가지고 있습니다. 자세한 것은 여러분이 가지고 계시는 컴파일러의 도움말을 참조하십시오.

Turbo C++에서 사용되는 #pragma 지시자의 예를 한 가지 들겠습니다.

void foo( int bar);
#pragma argused
{
printf("Hello!!\n");
}

위와 같이 사용하는데 만약 위에서 #pragma 지시자가 없으면 위의 프로그램은 컴파일 할 때 "Argument 'bar' is declared, but never used"라는 경고를 받게 됩니다. 즉 함수의 머릿부분에 bar라는 인수를 선언해 놓고는 함수 본체에서 한 번도 사용되지 않았다는 말로, 대부분의 경우 이 경고는 프로그램상에 논리적인 잘못이 있어서 벌레를 유발할 수 있음을 경고해 줍니다.

그러나 프로그래머가 어떤 의도에 의해서 일부러 저런 코드를 써 주어야 할 때 위의 #pragma 지시문을 이용해서 경고를 무시해 버릴 수 있는 것입니다.

이와 같이 #pragma 지시자는 표준적인 컴파일러 지시자보다 좀 더 구체적인 면을 지시해 줄 수 있는 컴파일러 특유의 확장 지시자라고 생각하시면 될 것입니다.



seiyes 님이 쓰신 글 :
: 도움말을 봤지만 이해가 제대로 되지 않아 질문을 드렸습니다...
: 알고계시면 간단하게라도 설명부탁합니다....
:
:
: 수야!╋ 님이 쓰신 글 :
: : 해당부분에 커서를 가져다놓고 F1을 눌러보시면
: :
: : 설명이 나와있습니다......
: :
: :
: :
: : seiyes 님이 쓰신 글 :
: : :
: : : header파일을 보면...
: : :
: : : extern PACKAGE TEmpDAO *EmpDAO 선언부분이 있는데...
: : :
: : : 이부분에 대한 일반적인 설명 좀 부탁합니다...
: : :
: : : 그리고 pragma의 역할역시 궁금합니다...
: : :
: : :
: : :
: : :

+ -

관련 글 리스트
35490 extern PACKAGE TEmpDAO *EmpDAO;에서... seiyes 1130 2004/06/08
35497     Re:extern PACKAGE TEmpDAO *EmpDAO;에서... 수야!╋ 1085 2004/06/09
35525         Re:Re:extern PACKAGE TEmpDAO *EmpDAO;에서... seiyes 1629 2004/06/10
35568             Re:Re:Re:extern PACKAGE TEmpDAO *EmpDAO;에서... 수야!╋ 1041 2004/06/11
35538             Re:Re:Re:extern PACKAGE TEmpDAO *EmpDAO;에서... posix.duo 877 2004/06/10
36293                 Re:Re:Re:Re:extern PACKAGE TEmpDAO *EmpDAO;에서... 친구들 1221 2004/07/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.