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
[15794] Re:함수 파라미터의 사이즈에 제한이 있나여?
임문환 [mhlim] 1271 읽음    2002-02-25 22:18
beavis 님이 쓰신 글 :
: 안냐세요 비비습니다
:
: 회사에서 합동작업을 하고 있는데요.
: 기존에 있던 라이브러리를 쓰고 있지요
: 근데 문제는 이 라이브러리의 한 함수가
: 파라미터로 구조체를 그대로 받고 있더군요(저라면 포인터를
: 넘겼을 텐데...)
:
: 근데 어찌됫건 기존의 코딩룰을 따르기로 해서 그대로 쓰고 있었는데요
: 어떤 사람이 구조체의 사이즈를 늘리니
: 받는 함수에서 못 받는 것 같더군요
: 대략 1k정도 되던 구조체를 3k이상으로 늘린 결과
: 남이 작성한 라이브러리를 디버깅한 것은 아니지만
: 어느 한도 이상의 데이터는 잘린 것으로 판단됩니다.
:
: 물론 정확히 디버깅을 하는 것이 순서이겠지만
: 혹시 함수 파라미터 길이의 제한이 존재하는 지 궁금하여
: 질문을 올려용(^^;;)
:
: 제 생각에도 결국 스택에 저장되는 파라미터의 특성상
: 무한정 받아들일 수는 없을 것이고 또한 포인터도
: 그러한 경우에 사용하기에 적합한 것이니 만큼
: 어느 정도 파라미터 크기의 제한은
: 있을 것 같은데요.
:
: 기본적인 질문이라 지나치지 마시고
: 여러 회원분들에게 복습좀 시켜주셔용(^_^)
:
:
:



기존 1K 이던 것을 3K까지 늘리셨다...
그렇다면 라이브러리에 있는 구조체와 현재 프로그램에 있는 구조체가 동일하다고 볼 수 있을까요?
라이브러리는 한 번 컴파일되면 다시 컴파일되기 전까지는 예전의 구조체를 가지고 있겠지요.
구조체의 크기를 늘리셨고 그 크기가 커졌다면 모르긴 해도 배열의 크기를 늘리셨을 가능성이 높은데 그렇다면 정말 라이브러리에 있는 구조체와 현재 프로그램의 구조체가 다르다고 봐야겠지요.
배열이름은 포인터상수입니다.
배열의 크기를 변경하셨다면 크기를 변경한 배열 후의 변수들의 구조체 내에서의 위치가 서로 다르지 않을까요?
그리고 구조체의 크기는 컴파일 시간에 정해지므로 라이브러리 컴파일 시의 크기와 현재 프로그램 컴파일 시의 크기가 다르다면 함수 매개변수로 인식되는 크기도 서로 다르지 않을까요?
즉, 현재 프로그램 모듈에서는 함수 호출시 3K를 보내지만 라이브러리에 있는 함수 정의부에서는 1K만 인식하는 등....

결국, 라이브러리를 다시 컴파일해야 한다고 봅니다.

+ -

관련 글 리스트
15790 함수 파라미터의 사이즈에 제한이 있나여? beavis 740 2002/02/25
15794     Re:함수 파라미터의 사이즈에 제한이 있나여? 임문환 1271 2002/02/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.