일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 셰이더프로그래밍
- 베지에 곡선
- Mesh Processing
- bezier curve
- 윈도우 프로그래밍
- OpenGL
- win32
- 컴퓨터 아키텍쳐
- Graphics
- 윈도우 구조
- 렌더링
- 컴퓨터 구조
- 핵심 API로 배우는 윈도우프로그래밍
- denoising
- shader programming
- shader
- 셰이더
- 운영체제
- 윈도우프로그래밍
- 그래픽스
- MFC
- Geometry Modeling
- 그래픽스기초
- window programming
- modeling
- c4d
- Win32 API
- 오픈지엘
- 윈도우
- MFC 윈도우 프로그래밍
- Today
- Total
오다기리 박의 알고리즘 노트
3장. 64비트 기반 프로그래밍 본문
3장. 64비트 기반 프로그래밍
1. WIN32 vs WIN64
64비트와 32비트
분류 기준 : I/O버스에서 한 번에 송수신할 수 있는 데이이터의 크기, 한 번에 처리할 수 있는 데이터 크기
프로그래머 입장에서의 64비트 컴퓨터
4비트로 주소를 표현할 경우 메모리에 할당할 수 있는 주소값의 개수는 16바이트가 전부이기 때문에 사용할 수 있는 최대 메모리의 크기는 16바이트이다.[32비트] 32비트 주소 표현을 할 경우 주소값의 이동 및 연산이 한 번에 이뤄지고 표현할 수 있는 주소의 범위가 4G바이트(2^32)가 되기 때문에 충분하다.
[64비트] I/O 버스가 64비트 단위로 자료를 전송하는 컴퓨터 세대를 가리키기도 하며 이를 64비트 컴퓨터라고도 부른다.
2. 프로그램 구현 관점에서의 WIN32 vs WIN64
LLP64 vs LP64
32비트 환경에서 Windows는 int, long을 4바이트로 표현하는 식으로 기본 자료형과 포인터를 표현하였다.
64비트 컴퓨터에서는 다음과 같이 표현
-> LLP64 : 32비트 시스템과의 호환성을 중시한 모델64비트와 32비트 공존의 문제점
-> 62비트 컴퓨터에서는 포인터를 int, long 등 4바이트 정수형 데이터로 형 변환할 경우 데이터 손실이 발생할 수 있다.Windows 스타일 자료형
다른 시스템으로의 이식성을 고려한다면 기본 자료형을 사용하거나 프로젝트의 성격 및 특성에 맞게 새로운 이름으로 자료형을 정의하는 것이 좋은 방법이다. 다만 Windows 기반에서의 실행만 고려한다면, MS에서 정의하고 있는 자료형을 사용하는 것도 좋다.
다형적 자료형
PTR : 32비트 시스템과 64비트 시스템의 포인터 크기가 다르기 때문에 발생할 수 잇는 문제를 해결하기 위해 등장한 자료형
3. 오류의 확인
GetLastError() 로 오류 확인하기
오류 확인은 오류가 발생한 직후에 바로 한다.
Windows 시스템 함수가 호출될 때마다 GetLastError함수가 반환하는 에러코드는 갱신된다.
'운영체제' 카테고리의 다른 글
6장. 커널 오브젝트와 오브젝트 핸들 (0) | 2018.08.08 |
---|---|
5장. 프로세스의 생성과 소멸 (0) | 2018.08.08 |
4장. 컴퓨터 구조에 대한 두 번째 이야기 (0) | 2018.08.08 |
2장. 아스키코드 vs 유니코드 (0) | 2018.08.08 |
1장. 컴퓨터 구조에 대한 첫 번째 이야기 (0) | 2018.08.08 |