본문 바로가기

컴퓨터219

main 의 반환값은 어디에 쓰는가 C/C++의 경우 제일 먼저 실행되는 함수의 원형은 int main(int argc, const char* argv[]) 이다. 이 말은, 즉, main 함수의 반환값은 정수형이라는 뜻인데, 컴파일러에 따라 void 로 해도 되는 것이 있지만, 표준에서는 main 의 반환값을 정수형으로 명시하고 있다. 윈도우즈에서 단일 프로그램 안에서 모든 작업을 하는 경우에 main 의 반환값의 쓸모에 대해 의문을 갖는 경우가 많아 보인다. 즉, main 을 호출하는 함수도 없는데 왜 값을 반환해야 하는가 에 대한 의문을 갖기 쉬운 이유는, 단일 프로그램 안에서 모든 일을 하는 경우만을 주로 접했기 때문에 생기는 것으로 보인다. main 은, 그 프로그램을 호출한 다른 프로그램에게, 프로그램이 어떤 상태로 종료되었는가.. 2009. 12. 27.
Scrollbar message handler 처리하기 CDialog-derived 에서뿐만이 아니라, SDI나 MDI에서도 동적으로든 정적으로든 CScrollBar를 쓰게 될 때, scrollbar에서 오는 message를 일일이 작성해 줄 때가 있는데, 다음과 같은 코드가 자주 사용된다. void CTestView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { // scroll 되기 전의 위치를 저장해 놓는다. UINT nOldPos = pScrollBar->GetScrollPos(); int diff = 0; // scroll 될 정도 switch(nSBCode){ // 왼쪽이 눌리면 예전 값에서 1을 뺀다. case SB_LINELEFT: diff = -1; break; // PAGE의 .. 2009. 12. 27.
사소한 속도까지 신경쓰는 이유 요즘의 컴퓨터는, 정말로 빠르다. 그럼에도 불구하고 속도에 신경을 쓸 수밖에 없는 이유는 '테스트' 때문이다. 즉, 테스트를 수백, 수천번 해야 하기 때문에 속도를 신경쓰지 않고 프로그램을 작성하는 경우 테스트에 소요되는 시간이 급격히 증가하게 된다. 프로그램을 작성하에 있어 테스트 - 논리적 오류의 존재 유무에 대한 검사 - 는 항상 따라다니는 절차이다. 한 번 실행시킬 때는 1초 2초 좀 더 느려도 사람이 느낄 수 없기 때문에 별 것이 아닐 수 있지만, 테스트를 천 번만 한다고 해도 이미 15분이나 더 길어지게 되는 것이다. 만약 GUI에 관계된 것이 아니고 데이터의 처리에 관련한 것이라면 사소한 속도까지 신경을 쓰는 것이, 매우 빨라진 컴퓨터 사양이 널리 사용되는 지금도 충분히 실용적 가치가 있다 .. 2009. 12. 22.
프로그래머와 수학 이 글은 프로그래머에게 왜 수학이 중요한 것인가에 대한 첫 글이며, 그 이후 작성될, 중고등학교 수준의 기초적인 수학에서부터 대학 수학 정도까지의 수학적 내용들이 프로그램 작성시 어떻게 사용되는지를 보여 줄 예에 대한 글머리 정도 될 것이다. 만약 프로그래밍에서 수학 혹은 수학적 사고 방식이 적용된 예를 보고자 한다면 이 블로그의 카테고리 중 컴퓨터/수학이랑 의 글들을 보면 된다. 왜 프로그래머에게 수학은 중요한가. '수학적 사고'라 일컬어 지는 것은 무엇인가. 우리는, 이 두 사안에 대하여 명확한 예를 접함으로써 프로그래밍에 있어서 수학의 중요성을 알 수 있을까? 수학이 사용된 몇 가지 예를 나열한다고 해서 될 일은 아니다. 우선, 프로그래밍에 대한 생각부터 바꾸어야 할 것이다. HTML 은 프로그래밍.. 2009. 12. 22.