이제 다음 장부터 다소 복잡한 프로그래밍으로 바로 들어가게 되는데 어렵다기보다는 양이 많기 때문에 혼란스럽다는 생각이 들것이다. 그 전에 여기서는 몸을 푸는 기분으로 입문전에 미리 알아두면 좋을만한 내용들을 소개하기로 한다. 어렵지 않은 내용이므로 본격적으로 헷갈리기 전에 먼저 읽어 두도록 하자.
윈도우즈 프로그래밍에서는 변수에 이름을 붙이는 방법이 도스와는 많이 다르다. 도스에서는 사용하는 변수가 i, j 등과 같이 짧으며 주로 소문자만 사용하지만 윈도우즈에서는 워낙 많은 변수가 사용되므로 대체로 변수 이름을 길게 쓰며 되도록 보기 좋게(=읽기 쉽게) 하기 위해 대문자와 소문자를 적당히 혼합하여 사용한다. 사용하는 변수가 많으므로 지나치게 단축형으로 쓰면 혼란스럽고 그렇다고 너무 길게 쓰면 입력이 불편하므로 적당히 절충하여 변수 이름을 정한다. 특히 자주 사용하는 변수 형식에 대해서는 관습적으로 정해진 접두어를 많이 사용한다. 다음은 윈도우즈 프로그래밍에서 주로 사용되는 접두어들이며 외워두면 여러모로 편리하다.
접두어 |
원래말 |
의미 |
cb |
Count of Bytes |
바이트 수 |
dw |
double word |
부호없는 long형 정수 |
h |
handle |
윈도우, 비트맵, 파일 등의 핸들 |
sz |
Null Terminated |
NULL 종료 문자열 |
w |
Word |
부호없는 정수형 |
i |
Integer |
정수형 |
b |
Bool |
논리형 |
이 접두어들을 정확하게 외우고 있어야 함수의 인수가 어떤 의미인가를 금방 파악할 수 있게 되며 암기하기도 편하다. 예를 들어 cbString이면 문자열의 바이트 수를 나타내는 정수형 인수(또는 변수)라는 것을 쉽게 알 수 있으며 szMessage라면 널 문자열을 가리키는 포인터라는 것을 쉽게 유추해 낼 수 있다.
변수명을 나타내는 이런 관습 또는 일종의 약속 외에도 윈도우즈에서는 새로운 데이터형을 만들어서 사용한다. 이 데이터형은 windows.h라는 헤더 파일에서 typedef로 선언되어 있으며 거의 모든 프로그램에서 마치 표준 데이터형처럼 사용하므로 알아두면 유용하다.
데이터형 |
의미 |
BYTE |
unsigned char형 |
WORD |
unsigned short형 |
DWORD |
unsigned long형 |
LONG |
long과 동일하다. |
LPSTR |
char *와 동일하다. |
BOOL |
정수형이며 TRUE, FALSE 중 한 값을 가진다. |
기존 데이터형으로 조합이 가능한 형을 새로운 데이터형으로 선언하여 사용하는 이유는 단순히 편하게 사용하자는 의도만 있는 것은 아니다. 윈도우즈가 항상 IBM 컴퓨터에서만 실행되라는 법은 없으며 언젠가는 다른 시스템으로 이식될 가능성도 있을 수 있는데 그럴 경우 소스 차원의 호환성을 확보하기 위해 이런 데이터형을 사용한다. 알기 쉽게 예를 든다면 WORD형이 현재는 2바이트의 부호없는 정수형이지만 팬티엄 이후 686이나 786쯤에는 4바이트로 확장될지도 모른다. 설사 그렇더라도 소스는 수정할 필요없이 헤더 파일에서 WORD형의 형 정의만 바꾸어 주고 소스를 다시 컴파일하면 호환성에 문제가 없다.
http://winapi.co.kr/ 에서 가져 옮
'WORK > Sotfware' 카테고리의 다른 글
컴퓨터에서 시간을 가져오기 (BCB) (0) | 2009.04.17 |
---|---|
그래픽 출력 (그림그리기) (0) | 2008.11.26 |
pragma에 관한 사용법 정리 (0) | 2008.10.31 |
C++Builder extensions to C++ (0) | 2008.10.31 |
vprintf (0) | 2008.10.30 |
댓글