본문 바로가기 메뉴 바로가기

엘키의 주절 주절

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

엘키의 주절 주절

검색하기 폼
  • 분류 전체보기 (360)
    • BlahBlah (40)
    • Book review (44)
    • C++ (62)
      • boost (2)
      • General (41)
      • network (0)
      • Debugging (9)
      • Rendering (5)
      • Visual Studio (5)
    • Java (0)
    • C# (2)
      • Unity (1)
      • General (1)
      • Winform (0)
    • Web (15)
      • General (1)
      • Django (3)
      • Ruby on Rails (10)
      • Node.js (1)
    • Network (23)
    • Scripts (13)
      • Python (1)
      • Ruby (9)
      • JavaScript (2)
      • Batch (1)
    • General (43)
      • Parerell (8)
      • Algorithm (0)
      • DataStructure (0)
      • AI (1)
      • Multimedia (1)
      • XML (1)
      • Profiling (2)
      • Environment (8)
      • Hardware (1)
      • Utility (18)
      • Etc (3)
    • OS (14)
      • Windows (7)
      • Linux (7)
    • Software Engineering (46)
      • Unittest (4)
      • Design Pattern (19)
      • Develop Theory (9)
      • Knowhow (14)
    • Database (19)
      • General (7)
      • PostgreSQL (2)
      • MS-SQL (8)
      • MySQL (0)
      • SQLite (2)
      • Redis (0)
    • Reverse Engineering (14)
    • Open source (25)
      • Game (9)
      • EzShortcut (11)
      • Libraries (5)
      • Light (0)
  • 방명록

C++/General (41)
오버로딩과 오버라이딩

오버로딩(Overloading)에는 연산자 오버로딩, 메소드 오버로딩이 있는데, 이 중 메소드 오버 로딩을 말해보겠다. 메소드 오버로딩이란, 같은 이름의 메소드지만 파라미터가 다르면 다른 함수로 처리하여, 중복 정의를 허용하겠다는 것이다. class CTest { public: void Print() { printf("CParent\n"); } void Print(char *str) { printf(str); } void Print(int no) { printf("%d\n", no); } }; 오버라이딩(Overriding)이란, 부모 클래스에 이미 존재하는 함수를 덮어 쓴단 의미다. 오버라이드 하게 되면 자식 클래스에서는 부모 클래스의 Print 함수의 존재를 잊어 버리고, 자식 클래스의 Print 함..

C++/General 2008. 1. 22. 09:01
Interlocked 계열 함수

간단한 동기 액세스를 행하기 위한 API 복수의 스레드가 공유하는 변수에 대해서의 동기 액세스를 간단하게 실시하기 위한 함수가 제공되고 있습니다. 변수의 값을 갱신할 때에 한 번에 하나의 스레드 밖에 그 갱신을 실시하지 않는 것을 보증합니다. 1 InterlockedIncrement 지정된 변수의 값을 인크리먼트(increment) 하고(하나 늘립니다), 그 결과 얻을 수 있던 값을 체크합니다. lpAddend 인크리먼트(increment) 되는 변수로의 포인터를 지정합니다. 반환 값 인크리먼트(increment) 후의 값이 돌아갑니다. 2 InterlockedDecrement 지정된 변수의 값을 감소 하여(하나 줄입니다), 그 결과 얻을 수 있던 값을 체크합니다. lpAddend 감소 되는 변수로의 포..

C++/General 2008. 1. 18. 10:38
시간 관련 함수 모음

typedef struct _SYSTEMTIME { WORD wYear; WORD wMonth; WORD wDayOfWeek; WORD wDay; WORD wHour; WORD wMinute; WORD wSecond; WORD wMillisecondes; }SYSTEMTIME, *PSYSTEMTIME; 운영체제 차원에서 기본이 되는 시간 포맷의 구조체. timeGetTime(VOID) 윈도우(운영체제)가 시작되어서 지금까지 흐른 시간을 1/1000 초단위로 나타내는 함수. 만일 윈도우가 뜨고 1분이 지났다면 이 함수는 60,000을 리턴. 부팅 시간은 제외. Void GetSystemTime(LPSYSTEMTIME lpSystemTime); 시스템의 시간을 알아내는 함수. 영국의 그리니치 천문대의 시간을..

C++/General 2008. 1. 17. 18:36
오류의 원인

* strcpy 등의 길이제한이 없는 함수는 사용하지 않는다 -> strncpy, memcpy와 같은 함수를 사용하고, 스트링 맨 끝에, 0을 넣어주는 것이 안전하다. 특히나 클라이언트에서 올라온 데이터는 더더욱 그렇다. * 포인터 검사는 반드시 하라 -> 포인터 사용시에는 무조건 NULL포인터 검사를 하는 것이 좋다. 바로 쓰고 싶을 경우는 참조자를 사용해서 항상 유효한 데이터임을 알린다. * 서식 지정자에 넣는 값에 유의하라. -> 스트링 안에 %s %d 라는 코드가 있고, 가변 인자가 주어지지 않으면 에러가 발생한다. %s 로 문자열을 입력 받으려 하는데, float형이나, int형을 입력했을 때에도 C는 널을 만나기 전까지 데이터 읽는 것을 멈추지 않는다. 잘못된 메모리를 접근 문제는 언제나 조심..

C++/General 2008. 1. 14. 15:27
윈도우 가상 키 코드(Virtual Key Code)테이블

가상키 코드 값 키 VK_LBUTTON 01 VK_RBUTTON 02 VK_CANCEL 03 Ctrl-Break VK_MBUTTON 04 VK_BACK 08 Backspace VK_TAB 09 Tab VK_CLEAR 0C NumLock이 꺼져 있을 때의 5 VK_RETURN 0D Enter VK_SHIFT 10 Shift VK_CONTROL 11 Ctrl VK_MENU 12 Alt VK_PAUSE 13 Pause VK_CAPITAL 14 Caps Lock VK_ESCAPE 1B Esc VK_SPACE 20 스페이스 VK_PRIOR 21 PgUp VK_NEXT 22 PgDn VK_END 23 End VK_HOME 24 Home VK_LEFT 25 왼측 커서 이동키 VK_UP 26 위쪽 커서 이동키 VK_R..

C++/General 2008. 1. 12. 10:57
BOOL을 쓰면 안되는 이유

첫째, 성능 문제, 지적하신 분들의 공통된 주장이 바로 bool은 BOOL에 비해 윈도우와 같은 32bit 환경에서 느리기 때문에 사용하지 않는다는 것입니다. bool이 BOOL보다 느리다죠. 맞습니다. 레지스터나 I/O 처리 등이 32bit 즉, 4bytes데이터에 최적화 되어 있기 때문에 char, unsigned char등과 같이 1byte 자료형은 4bytes size의 자료형에 비해 내부적으로 추가적인 처리가 필요합니다. 그런데 bool은 대개의 컴파일러에서 1byte로 처리를 하며 VC++에서도 int는 4bytes, bool은 1byte의 size를 가집니다. 따라서 bool은 BOOL(=int)에 비해 느립니다. 그러나 이러한 성능을 운운하는 것은 소위 말하는 '이른 최적화'라고 지적하고 ..

C++/General 2008. 1. 11. 14:29
TCHAR to the rescue!

TCHAR to the rescue! TCHAR가 구원의 손길을 내밀다! TCHAR is a character type that lets you use the same codebase for both MBCS and Unicode builds, without putting messy #defines all over your code. A definition of the TCHAR looks like this: TCHAR는 MBCS와 유니코드 빌드 모두의 경우에 같은 기초코드를 사용할 수 있도록 해주는 문자 타입이다. 여러분의 코드에 너저분한 #define 문들을 넣이 않고도 말이다. TCHAR의 정의는 다음과 같다. #ifdef UNICODE typedef wchar_t TCHAR; #else typed..

C++/General 2008. 1. 11. 14:01
static을 이해하자

Preface 프로그래밍을 하다 보면 static만큼 다양한 곳에서 다양한 의미로 많이 쓰이는 키워드가 없는 것 같습니다. C/C++과 같은 정적인 언어 뿐만 아니라 JAVA와 같이 동적 바인딩을 기본으로 하는 언어에서조차 static이 사용되는 것을 보면 옛 속담처럼 '귀에 걸면 귀걸이, 코에 걸면 코걸이'가 되는 것이 static이라는 키워드인 것 같습니다. 그러나 유감스럽게도 이렇게 자주 쓰이고 중요하게 사용되는 static을 잘못 이해하고 있거나 많은 특징들을 모르고 있는 사람들이 의외로 많습니다. 특히 시중에 판매되는 대다수의 프로그래밍 입문 서적들이 static에 대해서 정확하고 자세하게 설명하고 있지 않다라는 사실이 이렇게 부족하게 나마 static에 대한 글을 쓰게 된 이유라 할 수 있습니..

C++/General 2008. 1. 10. 17:25
이전 1 2 3 4 5 6 다음
이전 다음
공지사항
  • 나에 대해서~
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
  • I am Not Okay
  • Jacking
  • Flexible Gameserver
  • 아름다운 네트웍 세상 since 1996.
  • 애자일 이야기
  • 류광의 번역 이야기
  • Joel on software
  • B-612
  • 디지털 보단 아날로그
TAG
  • svn
  • EzShortcut
  • Ruby on Rails
  • 바로가기 프로그램
  • 디자인 패턴
  • 임백준
  • NDC2013
  • 좋은 프로그래머
  • TraceRoute
  • c언어
  • 멀티스레드
  • RoR
  • TDD
  • 엘키
  • 루비 온 레일즈
  • 조엘 온 소프트웨어
  • Rails
  • 게임개발포에버
  • ruby
  • 루비
  • MS-SQL
  • CppSQLite
  • 디버깅
  • 게임데브포에버
  • EasyExec
  • ftp
  • SDL
  • 리버스 엔지니어링
  • perfmon
  • SQLite Spy
more
«   2025/05   »
일 월 화 수 목 금 토
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
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바