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
[59838] Re:Re:Re:소스 좀 봐주세요~
장성호 [nasilso] 846 읽음    2010-01-20 11:34
sizeof 는 run-time에 동적으로 크기를 계산해주는 함수가 아닙니다.

컴파일할때 전처리기(preprocessor)과정에서 size를  결정해  바이너리를 만듭니다.

즉 동적으로 size가 변경되는 경우에는 sizeof를 쓸 수가 없는것입니다.

그냥 GLCD_BMP함수에  넘겨줄때 size를 같이  넘겨주면 되지 않겠습니까?

그럼..


 

김민조 님이 쓰신 글 :
: 장성호님께서 보신게 맞습니다.
: 4byte로 떨어진다는 걸 몰랐군요.
: 그럼 어떤 식으로 수식을 정해야 할까요?
: BMP[]배열의 크기가 항상 달라지니까(여러가지 그림을 사용할 시)
: 그 배열의 크기를 그 때 그 때 달라지게 해줘야 되는데 어떤 식으로 해야 가능할까요?
: 참고로 배열은 글로벌로 bmp[1024] = {0x00,0x11,...................}; 이런식으로 선언되어 있습니다.
:
:
: 장성호 님이 쓰신 글 :
: : 음..
: : 다른것은  잘모르겠구요
: :
: : 한가지 문제가 있는데..
: :
: : unsigned char *BMP 의 size를 구한 부분에 문제가 있습니다.
: : 코드의 의도를 볼때 BMP변수에 할당된 크기를 구하려고 하는것 같은데
: : 아래 코드는 그냥 포인터변수의 크기 입니다.
: :
: : win32시스템에서는 모든 포인터의 크기는 4Byte입니다.
: :
: :
: : void GLCD_BMP(int page, int column, const unsigned char *BMP) 
: : { 
: :     unsigned int i, k=0; 
: :     
: :     GLCD_xy(page,column); 
: :     GLCD_xy_row(xcharacter,ycharacter,0); 
: :     
: :     i= sizeof(bmp)/sizeof(bmp[0]); 
: :     // sizeof(bmp) 는 항상 4가 됨
: :     // sizeof(bmp) 는  BMP에 할당된 size를 구하는것이 아니라 
: :     // BMP변수의 size 즉 포인터의 size임 
: :     // win32 시스템에서 모든 포인터의 size는 4Byte임
: : 
: :     while(k <= i) 
: :     { 
: :         disp_write(BMP[k]); 
: :         k++;    
: :     } 
: : } 
: : 

: :
: :
: : 그럼..
: :
: :
: : 김민조 님이 쓰신 글 :
: : : void GLCD_BMP(int page, int column, const unsigned char *BMP)
: : : {
: : :     unsigned int i, k=0;
: : :    
: : :     GLCD_xy(page,column);
: : :     GLCD_xy_row(xcharacter,ycharacter,0);
: : :     i= sizeof(bmp)/sizeof(bmp[0]);
: : :
: : :     while(k <= i)
: : :     {
: : :         disp_write(BMP[k]);
: : :         k++;   
: : :     }
: : : }
: : :
: : : 이런식으로 하면 LCD에 BMP가 제대로 뿌려질까요?
: : : bmp는 코드변환프로그램을 이용해서 사용했고요.
: : : GLCD_xy_row()에서 x 어드레스와 y어드레스를 설정한다음
: : : BMP배열의 값을 뿌려주는 형식으로 짠 건데 지금 학교가 아니라서 구동이 되는지 확인을 못하겠네요~
: : : 고수님들의 의견을 듣고 싶습니다.

+ -

관련 글 리스트
59835 소스 좀 봐주세요~ 김민조 847 2010/01/20
59836     Re:소스 좀 봐주세요~ 장성호 760 2010/01/20
59837         Re:Re:소스 좀 봐주세요~ 김민조 765 2010/01/20
59838             Re:Re:Re:소스 좀 봐주세요~ 장성호 846 2010/01/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.