본문 바로가기

프로그래밍 활용(TIP)

(20)
아스키 코드표(ASCII Code) DEC HEX OCT Char DEC HEX OCT Char DEC HEX OCT Char 0 00 000 Ctrl-@ NUL 43 2B 053 + 86 56 126 V 1 01 001 Ctrl-A SOH 44 2C 054 , 87 57 127 W 2 02 002 Ctrl-B STX 45 2D 055 - 88 58 130 X 3 03 003 Ctrl-C ETX 46 2E 056 . 89 59 131 Y 4 04 004 Ctrl-D EOT 47 2F 057 / 90 5A 132 Z 5 05 005 Ctrl-E ENQ 48 30 060 0 91 5B 133 [ 6 06 006 Ctrl-F ACK 49 31 061 1 92 5C 134 \ 7 07 007 Ctrl-G BEL 50 32 062 2 93 5D 1..
[정보]VC++ Error Message Visual C++ Error MessagesThis page contains a listing of "difficult to diagnose" error messages and possible fixes. I haven't taught a programming class that uses Visual C++ in several years so this list is probably out of date by now. It was valid for Microsoft Visual C++ version 6.0 service pack 3.C1001: INTERNAL COMPILER ERROR (compiler file 'msc1.cpp', line 1786) Please choose the Technical ..
구조체 맴버맞춤 struct TEST { int iNum; char ch; }; 구조체를 선언할적에 위와 같이 선언했다면 우리 생각엔 "4Byte(int) + 1Byte(char) = 5Byte" 라고 생각하기 쉽지만, 실질적으로 8Byte가 할당된다. 그 이유는 CPU 효율을 위해 4Byte씩 미리 잡아놓고 할당을 하기 때문이라고... 근데 주의할껀 char형 변수 3개를 선언하면 12byte가 되는게 아니라 4바이트가 할당된다. 미리 4바이트를 잡아두고 1바이트인 캐릭터형 3개는 4바이트를 넘지 않기때문에, 별도로 4바이트를 할당할 필요가 없기때문이다. 이러한 현상을 해결하기 위해서는, 2가지 방법이 있는데, 비쥬얼 스튜디오의 [프로젝트] - [속성] - [구성속성] - [C/C++] -[코드생성] 안에 구조체 멤버..
inline 함수 사용시 발생할수 있는 LNK2019 오류 inline 키워드를 사용하여 함수를 inline화 시키게 되면, 함수에 정의부에 있는 내용을 함수를 호출한 부분에 대체 함으로써 성능을 향상 시킬수 있다. 하지만 함수의 정의부에 내용이 많을경우에는 별로 좋지 않은 방법이다. 나는 잘 모르고 있었지만, 우리가 inline 키워드를 이용해 inline화 하는것은 단지 컴파일러에게 '요청'하는 것일 뿐이며, 판단은 컴파일러가 한다고 한다. 이 말은, 컴파일러에 의해 '요청'한 부분이 무시될수도 있고, 성능향상을 위해 컴파일러가 자동으로 inline화를 수행하기도 한다는 소리다.( 똑똑하군..) inline함수를 만들때 주의해야 할 점은, 반드시 "inline 함수의 선언과 정의를 헤더파일과 구현파일로 분리해서는 안된다!" 이다.. 실제로 내가 경험한 내용이..
TIME(시간)에 관련된 각종 함수들 (WIN32 API) 출처: http://blog.naver.com/ghostcbr954/110003750170 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 ..
[프로그래밍 습관] 함수를 만들때 꼭 기억해야 하는것 중 하나.. 함수를 만들면서 함수의 리턴타입이 void 인 경우도 있을것이고, data 타입이 지정되는 경우도 있을것이다. 보통 기능 위주로 생각을 하다보니 한가지 놓치는점이 있다. 그것은 data의 생성과 소멸시점에 대한 부분이다. 지역변수는 생성과 함께 stack 영역에 저장했다가 함수가 탈출하는 시점에서 자동 소멸하게끔 되어있다. 만약 지역변수로써 함수 내에 선언한 변수를 return 해버리는 경우에는 심각한 문제가 발생할수 있다. 그래서 지역내에서 생성한 함수를 리턴할 필요가 있을때는 static 키워드를 통해 전역변수화 시켜줘야 한다. 지금 생각해보면 프로그래밍을 하면서 수많은 함수들을 만들었었는데, 이러한 개념을 이해하고 있으면서도 실제로 만들때 지역변수를 리턴했던 경우가 다수 있었던것 같다. 주의하자....
[C++] Type Casting C++ 코드에서 많이 쓰이는 Type Casting 에 관련된 내용이다. 나도 확실히 몰라서, 참고하고자 포스팅 한다. http://www.cplusplus.com/doc/tutorial/typecasting/ Type Casting Published by Juan Soulie Last update on Jun 8, 2007 at 9:46am UTC Converting an expression of a given type into another type is known as type-casting. We have already seen some ways to type cast: Implicit conversion Implicit conversions do not require any operator. T..
Win32 프로젝트에서 콘솔 디버그창 띄우기 #pragma comment(linker, "/entry:WinMainCRTStartup") #pragma comment(linker, "/subsystem:console") 프로그램이 구동되는 부분의 서두에 두줄을 추가하면 된다.