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
[50165] Re:extern과 static
이정구 [appleii] 1482 읽음    2007-08-02 15:06
extern 은 변수정의가 아니라 변수가 외부 모듈에 정의되어 있을 수  있다는 것을 나타내는 것입니다.

#include <stdio.h>
#include <conio.h>

extern int i;
static int j;

int main(void)
{
  i = 1;
  j = 2;
  printf("%d\n",i);
  printf("%d\n",j);
  getch();
  return 0;
}

위 프로그램을 실행하면 [Linker Error] Unresolved external '_i' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ   에러가 납니다.

변수 i 에 대한 정의가 외부모듈에 있을 거라고 생각했는데 link 하려고 보니까 없거든요.
변수 i 를 사용하려고 했으나 이 모듈에는 없다, 그렇다면 외부모듈에 정의가 있어야 하는데 없습니다.

#include <stdio.h>
#include <conio.h>

extern int i;
static int j;

int i;

int main(void)
{
  i = 1;
  j = 2;
  printf("%d\n",i);
  printf("%d\n",j);
  getch();
  return 0;
}

위 소스는 정상 작동합니다. 변수 i 에 대한 정의가 있기 때문입니다. 하지만 extern 이 있으므로 다른 모듈에서 정의해도 됩니다. static 은 이 모듈에서만 사용하겠다는 이야기입니다.

http://blog.aladdin.co.kr/776779115/1109448

+ -

관련 글 리스트
50163 extern과 static C초보 1231 2007/08/02
50173     Re:extern과 static cc1232 1640 2007/08/04
50165     Re:extern과 static 이정구 1482 2007/08/02
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.