WIN32 vs WIN64
64bit 와 32bit 구분법
- 한번에 송수신 가능한 데이터 크기 (BUS)
- CPU 에서 처리 가능한 명령어의 크기 (Register 의 크기)
32bit -> 64bit 의 특징
- 프로그램으로 표현할 수 있는 범위의 증가
- 활용 가능한 메모리의 확장 (메모리에서 접근할 수 있는 범위 증가)
32bit 시스템에서는 포인터가 32bit 크기이고, 2^32-1 만큼 표현할 수 있다.
64bit 시스템에서는 포인터가 64bit 크기이고, 2^64-1 만큼 표현할 수 있다.
! 내컴퓨터 비트수 확인
제어판에 시스템에서 확인할 수 있다 !
프로그래머 입장에서 64bit 특징
활용 가능한 메모리가 50byte 라고 가정해보자.
(프로그램을 실행할때 할당하는 메모리는 고려하지 않는다.)
example
int _tmain(void){
TCHAR str[100]; //100 byte
_tscanf(_T("%s"),str);
_tprintf(_T("%s"),str);
return 0;
}
-----------------------
int _tmain(void){
TCHAR ch;
do
{
_tscanf(_T("%c"),&ch);
_tprintf(_T("%c"),ch);
}while(ch!='\n');
return 0;
}
위 두 프로그램소스를 비교해보자. 첫번째 프로그램을 보면 메모리가 50byte 밖에 사용을 못하는데 100byte 를 할당하고 한번에 입력을 받는다 하면 프로그램이 돌아가지않는다.
반면에 두번째 프로그램에서는 1byte 만을 사용하여 개행문자를 만날때까지 1byte 씩 입력을 받고 출력해준다.
일반적으로 desktop 에서 프로그래밍 할 때는 문제가 되지 않지만, 임베디드 시스템에서는 메모리가 지극히 제한적이기때문에 이러한 문제들을 고민하기도 한다. 잘 와닿지 않지만 개발자로서 이해를 하고 있어야한다.
#윤성우 윈도우 시스템 프로그래밍을 BASE로 제작되었습니다.