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

C/C++ Q/A
[215] Re:extern
나그네 [] 3706 읽음    2002-01-12 09:22
exterb "C" 라는 키워드는 C언어로 컴파일된 함수를 C++에서 사용하려고
하는 경우 발생합니다. 이유는 C와 C++이 실행코드를 생성하는 방법이
조금 다르기 때문입니다.
C++에서 함수의 오버로딩에 대해서 아시죠..?
함수 func(int), func(long)은 컴파일할때 내부적으로 컴파일러가 알아서
funcA(int), funcB(lond)로 바꾸어서 컴파일이 되죠..
이런이유때문에 실행코드를 생성하는 부분이 조금 다릅니다.
그러니까 C함수를 C++에서 사용하려고 할때 쓰는 키워드이지요..ㅅㅅ;

extern "C" void cfunc(int); <--- 이것은 cfunc(int)라는 C함수를 C++에서
사용하기 위해서 선언해준거지요...ㅅㅅ;
extern "C" 하고 extern "c"하고는 같은 표현입니다..대문자 소문자 둘다 사용가능하고요.
모든함수 하나하나에 extern "C"를 하시는게 번거로우시면
extern "C"{
  func1();
  func2();
  func3();
  ........
}
이런식으로 불럭으로 묶어 주시면..안에 있는 모든 함수가 해당이 됩니다.
우리가 일반적으로 visual c++에서 쓰는 C함수들이 있지요..?
그거를 define 된곳으로 따라가 보면..

#ifdef  __cplusplus
extern "C" {
#endif

이렇게 선언이 되어 있지요..즉 C++이면 extern "C"{     } 해서 C++에서 일반 C표준함수들을
사용가능하게 만들어 놓은 거지요..ㅅㅅ;
이상 허접 답변이었습니다...

이상 허접한 답변이었습니다..

;지영배 님이 쓰신 글 :
:
: 저걸 왜 쓰는지 잘 모르겠습니다.
:
: 잘 아시는분 답변 부탁드립니다.
:
: 그리고 extern 이란 키워드를 정확히..언제 쓰는건지..
:
: 메뉴얼을 봐도 잘 모르겠습니다.
:
: C++ 프로그램에서 어쩌고 저쩌고 해서..
:
: 사용한다는데.. -_-
:
:
:
:

+ -

관련 글 리스트
209 extern "C" 에 대해서 잘 아시는분.. 답변좀.. 지영배 3038 2002/01/11
3365     Re:extern "C" 에 대해서 잘 아시는분.. 답변좀.. 향기 3228 2002/01/18
215     Re:extern 나그네 3706 2002/01/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.