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
[40921] 정말 감사드립니다.^^
우시관 [nervegum] 742 읽음    2005-07-07 11:19
필형 님이 쓰신 글 :
: 아무래도 전역변수는 c파일에 두는게 좋겠구요.
: 다른 파일에서 참조하고 싶으시면.. extern을 쓰면 될거 같아요
:
: file1.c
: -------------------
: double I[100], V[100],Power[100];
: double Isc, Voc, Imax, Vmax, Pmax;
: ...
:
: file1.h
: -------------------
: extern double I[100], V[100],Power[100];
: extern double Isc, Voc, Imax, Vmax, Pmax;
: ...
:
: file2.c
: -------------------
: #include "file1.h"
:
: ...
: //변수를 마음껏 사용하세요
:
: include 라고 하는것은 header 파일을 실제로 c파일에 넣어 버리거든여. 선행처리기가 해버리는 일이지요.
: 그러다 보니 한 project 안에 같은 변수가 두번 선언되어서 나는 에러로 보입니다..
: extern은 외부변수라고 불리는데 실제로 변수공간을 할당하는게 아니구..
: "다른 어딘가에 변수의 실체가 선언되어 있다" 는 것을 컴파일러에게 알려주는 걸로 생각하심 되요.
: 정확한 내용은 C문법서를 참조하시구요.
:
:
:
:
: 우시관 님이 쓰신 글 :
: : 장비 인터페이스를 하는데
: : 많은 전역변수를 필요로 합니다.
: : (사실은 실력이 안되서 전역변수 처리를 많이 합니다.)
: :
: : 전역변수를 file1.h 에 아래와 같이 정의하고...
: :
: : //file1.h------------------------------
: : double I[100], V[100],Power[100];
: : double Isc, Voc, Imax, Vmax, Pmax;
: : // enf of file1.h------------------------
: :
: : Fomr1 에서 include 해서 쓸때는 문제가 없는데..
: : Form이 하나 이상이 되어서
: : 두개의 폼에서 file1.h 를 include 하면
: :
: : [Linker Warning] Public symbol '_a' defined in both module C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ and C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT2.OBJ
: :
: : 위와 같은 경고가 나옵니다.
: :
: : 물론 form 하나에서만 include 해서 쓰라면 어쩔수 없지만...
: : 두개의 폼에서 전역변수를 사용하기 때문에 ㅜ.ㅜ....
: :
: : 어떻게 해야 하나요??
: : 혹시 프리컴파일러를 써야 된다면???
: : 제가 그쪽은 하나두 몰라서요....

+ -

관련 글 리스트
40918 전역변수를 헤더화일에 넣는 방법??? 우시관 830 2005/07/07
40920     Re:전역변수를 헤더화일에 넣는 방법??? 필형 1278 2005/07/07
40921         정말 감사드립니다.^^ 우시관 742 2005/07/07
40919     Re:전역변수를 헤더화일에 넣는 방법??? smleelms 1116 2005/07/07
40922         답변 감사들립니다. 하지만 이렇게 해도 같은 경고가 나옵니다.(내용없음) 우시관 780 2005/07/07
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.