Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
참조형?
procedure Fun(var Buf; Size: Integer)
begin
// Buf를 그냥 배열 변수인 것 처럼 다루는 소스... ;;;;
end;
위에서처럼 함수나 프로시저의 인자로 var값이 들어가 있는 경우가 있는데 이런 것은 참조형이라고 하더라구요... 참조형에 대해 자세히 좀 알려주세요.
1
COMMENTS
방재웅
•
2003.07.08 10:03
님께서 질문하신 부분은 Untyped Parameter 라는 부분입니다.
'델파이 개체참조' 모델과는 약간 다른 개념입니다.
함수정의에서 위처럼 (var F) 이런식으로 파라메터가 선언된
의미는 F가 흔히 C언어에서 말하는 const 포인터 변수라고 할 수 있죠.
예를들어
procedure Test();
var
aryTest : Array[0..100] of char;
begin
FillChar(aryTest,sizeof(aryTest),0);
end;
FillChar함수는 C언어에서 memset() 함수와 비슷한 기능을 합니다.
즉 길이만큼 지정된 값으로 채우는 기능을 하죠.
여기서 aryTest는 배열 aryTest를 가리키는 주소값(포인터)입니다.
델파이 헬프에서 Untyped Parameter 부분을 찾아보시면 됩니다.
그리고 델파이에 대해서 조금더 깊이 아실려면
"델파이 개체참조모델"에 관해서 연구하세요.
참조모델에 대해서 C++과 비교해서 간략이 설명드리자면,
C++에서
클래스 C가 있다고 할 때
C myclass;
이렇게 선언하자 마자
메모리에 C의 인스턴스가 생성됩니다.
물론 크기는 sizeof(C) 만큼이겠죠.
델파이에서는
클래스 D가 있다고 했을 때
D myclass;
요렇게 선언하면 어떻게 될까요?
이 선언은 C++과 다르게
D클래스의 인스턴스가 메모리에 생성되지 않습니다.
myclass 변수는 사실 C클래스형의 포인터 변수 입니다.
크기는 4byte죠. (포인터 변수이기 때문에)
즉, D클래스 개체의 주소를 저장할 수 있죠.
C++로 표현하자면
D* myclass;
요렇게 되는 겁니다.
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
안대진
2003.07.08 11:17
0
COMMENTS
/
0
LIKES
엑셀파일에서 원하는 칼럼만 다시 엑셀로 보이기
우민석
•
2003.07.08 07:08
5
COMMENTS
/
0
LIKES
WebBrowser 에서 클릭이벤트를..
한원희
•
2003.07.08 08:00
안녕하세요. 한원희입니다. 제목 그대로 OnBeforeNavigate2에서 해결하시면 될것 같습니다. 그 이벤트...
우민석
•
2003.07.08 20:45
답변 감사합니다. 한가지만 더 부탁드리겠습니다 그런데 저도 OnBeforeNavigate2 에서 해결하려고 햇는...
김병곤
•
2003.07.08 23:16
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject; var ppDisp: IDispatch; var Canc...
우민석
•
2003.07.09 23:34
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject; var ppDisp: IDispatch; var Canc...
김병곤
•
2003.07.10 00:15
http://www.euromind.com/iedelphi/ 위의 사이트를 참고하세요.
timeless
•
2003.07.08 06:27
1
COMMENTS
/
0
LIKES
중복 실행 방지 방법..?
한원희
•
2003.07.08 07:48
안녕하세요. 한원희입니다. 클래스의 이름이 잘못되어 있네요. 실행시킬 프로그램의 클래스 이름을 정...
차가운바람
•
2003.07.08 05:58
1
COMMENTS
/
0
LIKES
프로그램 최소화,최대화 될때...
한만교
•
2003.07.08 06:06
손상엽
•
2003.07.08 05:12
1
COMMENTS
/
0
LIKES
ㅡㅡ; 또 허접이네용...(QRLabel 초기화..)
열심히
•
2003.07.09 01:07
음.. 두번쨰 질문은 무슨 뜻이지 잘모르겠구요.... 첫번째 질문에 대한 답입니다.. for i :=...
카우보이
•
2003.07.08 04:46
1
COMMENTS
/
0
LIKES
asp + 델파이로 웹사이트 제작시 젤 좋은방법은요?
바보감자
•
2003.07.08 05:15
안녕하세요 isapi는 책에도 많이 있는 내용입니다.. 자신이 만들 웹페이지에 어느 부분을 델파이로 돌...
유아독존(Woo)
•
2003.07.08 03:49
1
COMMENTS
/
0
LIKES
DBGrid를 초기화 시키려면?
바보감자
•
2003.07.08 05:07
안녕하세요 언제나 초보 바보감자입니다.. 콤포가 정녕 DB그리드인가요..... 그럼 그냥 쿼리를 끊으셔도 ...
김준영
•
2003.07.08 03:39
1
COMMENTS
/
0
LIKES
참조형?
procedure Fun(var Buf; Size: Integer) begin // Buf를 그냥 배열 변수인 것 처럼 다루는 소스... ;;;; end; 위에서처럼 함수나 프로시저의 인자로 var값이 들어가 있는 경우가 있는데 이런 것은 참조형이라고 하더라구요... 참조형에 대...
방재웅
•
2003.07.08 10:03
님께서 질문하신 부분은 Untyped Parameter 라는 부분입니다. '델파이 개체참조' 모델과는 약간 다른 ...
제타
2003.07.08 03:28
0
COMMENTS
/
0
LIKES
ms-sql을 원격에서 접속했을때.. 처음 sql문실행하면 너무 늦음...
김대규
2003.07.08 02:46
0
COMMENTS
/
0
LIKES
프린터작업대기열 내용 알아내기
프리터치
•
2003.07.08 02:15
1
COMMENTS
/
0
LIKES
StringGrid에서 챠트 표현하는 방법은?
문상철
•
2003.07.08 19:23
안녕하세요.. 저도 TeeChart 때문에 고생한 경험이 있어 안타까운 맘에 제가 예전에 작성했던 내용을 수...
신봉웅
•
2003.07.08 01:17
2
COMMENTS
/
0
LIKES
델파이 6.0.에서 flatstyle컴포넌트 등록 어떻게 해요?
박상준
•
2003.07.08 06:02
아래에 적힌대로 따라하면 됩니다... The XX mean your Delphi or C++ Builder version. 컴포넌트...
신봉웅
•
2003.07.08 19:16
감사 합니다.. 다음에 메일로 연락 드려도 되나요?
timeless
•
2003.07.08 00:34
1
COMMENTS
/
0
LIKES
실행중인 프로그램의 확인방법...?
한원희
•
2003.07.08 01:50
안녕하세요. 한원희입니다. FindWindow를 사용해서 해결할 수 있습니다. 각 버튼에서 실행시킬 프로그...
유해현
•
2003.07.07 23:54
•
1
COMMENTS
/
0
LIKES
RS232C 포트를 이용한 데이터 전송/받기
한만교
•
2003.07.08 06:18
님께서 올리신 VCL은 Cport라는 컴포같은데요... 이것은 예제가 포함되어 잇습니다... 해당예제가 다른 ...
초보임당
2003.07.07 23:52
0
COMMENTS
/
0
LIKES
MS-SQL2000 서버로 3 TIER 작업시 문제점.
이슬비
2003.07.07 22:07
0
COMMENTS
/
0
LIKES
파라독스에서 필드값이 Null이면 0을 Select 하고 싶은데 방법이 있나요 ??
kil hyun
•
2003.07.07 21:47
1
COMMENTS
/
0
LIKES
Tstringlist에서 AddObject문제...
박서규
•
2003.07.09 23:48
흠.... 괴로운일을 당하셨구낭,,,,, 실제 sql이라는것이 add하면 더해져서 보내져야하는데,,,, 고...
김영철
•
2003.07.07 21:42
1
COMMENTS
/
0
LIKES
프린터상태구하기 중에서 어셈코드좀 갈켜주세요...
문상철
•
2003.07.08 01:12
쩝.. int 17h 라는것은 인터럽트 를 가로채는것입니다. 인터럽트 벡터 데이블이라고 있는데 거기에는 ...
이민석
2003.07.07 21:33
0
COMMENTS
/
0
LIKES
editor 기능중 점연산 구현에 대하여..
차가운바람
•
2003.07.07 21:30
1
COMMENTS
/
0
LIKES
TOpenDialog의 필터 체인지요...
박서규
•
2003.07.09 23:52
OpenDialog의 속성중에,,, Filter속성을 변경해주시면 될것 같은데,,,, Filter := 'INI|*.ini|TEXT|*...
김준영
2003/07/08 03:39
Views
283
Likes
0
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
님께서 질문하신 부분은 Untyped Parameter 라는 부분입니다.
'델파이 개체참조' 모델과는 약간 다른 개념입니다.
함수정의에서 위처럼 (var F) 이런식으로 파라메터가 선언된
의미는 F가 흔히 C언어에서 말하는 const 포인터 변수라고 할 수 있죠.
예를들어
procedure Test();
var
aryTest : Array[0..100] of char;
begin
FillChar(aryTest,sizeof(aryTest),0);
end;
FillChar함수는 C언어에서 memset() 함수와 비슷한 기능을 합니다.
즉 길이만큼 지정된 값으로 채우는 기능을 하죠.
여기서 aryTest는 배열 aryTest를 가리키는 주소값(포인터)입니다.
델파이 헬프에서 Untyped Parameter 부분을 찾아보시면 됩니다.
그리고 델파이에 대해서 조금더 깊이 아실려면
"델파이 개체참조모델"에 관해서 연구하세요.
참조모델에 대해서 C++과 비교해서 간략이 설명드리자면,
C++에서
클래스 C가 있다고 할 때
C myclass;
이렇게 선언하자 마자
메모리에 C의 인스턴스가 생성됩니다.
물론 크기는 sizeof(C) 만큼이겠죠.
델파이에서는
클래스 D가 있다고 했을 때
D myclass;
요렇게 선언하면 어떻게 될까요?
이 선언은 C++과 다르게
D클래스의 인스턴스가 메모리에 생성되지 않습니다.
myclass 변수는 사실 C클래스형의 포인터 변수 입니다.
크기는 4byte죠. (포인터 변수이기 때문에)
즉, D클래스 개체의 주소를 저장할 수 있죠.
C++로 표현하자면
D* myclass;
요렇게 되는 겁니다.