본문 바로가기
반응형

프로그래머의 길/C & C++93

TranslateMessage() 키보드에서 A키를 눌렀다 뗐다고 해 보자. 이 때 발생하는 메시지는 순서대로 WM_KEYDOWN, WM_CHAR, WM_KEYUP 세가지이다. 이 중 WM_CHAR 메시지는 사용자에 의해 발생하는 메시지가 아니다. 키보드로부터 전달되는 메시지는 키를 누를 때 WM_KEYDOWN, 키를 뗄 때 WM_KEYUP 두가지뿐이다. 그럼 WM_CHAR 메시지는 어디서 발생할까? 이 메시지는 WM_KEYDOWN에 의해 추가로 발생하는 메시지이며 메시지 루프에서 인위적으로 생성된다. Key 프로젝트를 연 후 메시지 루프를 다시 보자. while(GetMessage(&Message,0,0,0)) { TranslateMessage(&Message); DispatchMessage(&Message); } GetMessage는.. 2008. 4. 15.
assert() " assert의 비법들 " 1. assert의 기본 - assert 매크로 : 코드 상의 어떠한 가정을 철저하게 점검하기 위한 간단하면서도 부담 없는 방법 - 항상 TRUE가 되어야 하는 조건식을 넣는다. 조건이 FALSE로 평가되면 assert는 문제가 생겼음을 알리는 대화상자를 띄운다. - 프로그램을 방어적으로 만들어 준다. - 디버그 빌드에서는 수행하지만 릴리즈 빌드에서는 assert 매크로가 컴파일되지 않는다. 그러므로 assert 안에서 프로그램의 상태를 변화시켜서는 안된다. #include void VectorNormalize( Vec* src, Vec* dst ) { assert( src != 0 ); assert( dst != 0 ); } 2. assert 비법_1) 더 많은 정보를 집어.. 2008. 4. 15.
지뢰찾기 #include #include #include #include #include int x, y, boom; int **o_board, **user_board, **check_board; void board_print(int **board, int flag); int board_open(int px, int py, int flag); int check_mine(); int main() { int i, j, cnt; int ran_x, ran_y; int u_x, u_y, u_select; srand(time(NULL)); printf("지뢰찾기 사이즈 입력(가로, 세로) [예) 10 6] : "); scanf("%d%d", &y, &x); printf("지뢰의 개수를 입력(%d 이하) : ", x*y);.. 2007. 6. 28.
라이프 게임 #include #include #include #include void print(int **size, int num); void copybox(int **one, int **two, int num); int main() { int user_size; int **real_size, **copy_size; int i, j; int count; srand(time(NULL)); printf("라이프 게임 판 크기 입력 : "); scanf("%d", &user_size); real_size = (int **)calloc(user_size+2, sizeof(int *)); copy_size = (int **)calloc(user_size+2, sizeof(int *)); for(i=0; i 2007. 6. 28.
마방진 소스 #include #include int main() { int input_size, i, j; int **size; int px, py; printf("마방진 사이즈를 입력 : "); scanf("%d", &input_size); size = (int **)calloc(input_size, sizeof(int *)); for(i=0; i 2007. 6. 28.
오늘의 날짜를 리턴해 주는 함수 <time.h> 날짜를 얻는 함수 날짜를 얻는 함수는 time()함수가 있으며 날짜를 저장하기 위한 변수는 time_t라는 자료형으로 선언된 변수여야 한다. time_t tt; //시간이 저장될 변수 tt를 선언(time_t는 4바이트 자료형임) time(&tt); //tt변수에 현재시간을 저장 이렇게 해서 현재 시간을 얻는 부분은 간단하게 만들 수 있다. 헌데. 변수 tt에 얻어진 시간을 '몇년/몇월/몇일...로 표시하기 위해선 약간의 조작이 필요 하다. struct tm *tm tm = localtime(&tt); printf("%d년 / %d월 / %d일 ",tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday); 이렇게 해주면 변수 tt에 저장했던 시간을 표현할 수 있다. 첫번줄은 시간을 좀.. 2007. 4. 12.
반응형