'2008/10'에 해당되는 글 3건

  1. 2008.10.11 메모리 값으로 알아본 블록 상태
  2. 2008.10.11 함수의 호출 규약
  3. 2008.10.10 핸들의 이해

메모리 값으로 알아본 블록 상태


1) 0XCD, 0xCDCD, 0xCDCDCDCD
   - 초기화 되지 않은 heap 메모리
   - malloc() 또는 new로 객체가 생성되고 아직 Write한 적이 없는 상태

2) 0xFD, 0xFDFD, 0xFDFDFDFD
     - 요청한 블럭에 속하지 않는 위치에 존재하는 몇Bytes가량의 금지구역
   - 메모리 경계검사를 위해 삽입됨

3) 0xDD, 0xDDDD, 0xDDDDDDDD
   - free() 또는 delete로 객체를 Free한 상태
신고

함수의 호출 규약

일반적으로 함수의 호출 규약은
3가지 정도 존재할수 있는데
__fastcall을 제외 시키고 자주 쓰이는 2가지에 대해 알아보자.

1) __cdecl : 일반적인 호출 규약으로써, Caller (부모함수) 가 스택을 정리해줌 - 소스가 길어짐

2) __stdcall : 윈도우 API들의 호출 규약으로써, 스택을 스스로 정리 - 소스가 줄어듬

정도로 생각하면 됨,

아무것도 안쓰면 __cdecl 이 적용되고, CALLBACK, WINAPI 등으로 Define 되면 __stdcall 로 적용됨
신고

핸들의 이해



: 핸들이란 커널 오브젝트에 붙여진 32비트 고유 숫자이다, 다음과 같은 특징을 가진다.

1) 운영체제가 발급해주는 크기가 32비트 정수 : 연산하기 빠름

2) 같은 종류의 오브젝트끼리는 중복 될수 없다. (ex: HBRUSH 끼리 불가)

3) 실제값이 의미하는 바는 없음(몰라도됨).

비교) 주소값을 가지는 포인터와는 다름

신고

티스토리 툴바