자~ 간만에 C++ 이야기입니다~! C언어의 난이도를 몇배로 높여준! 많은 사람들이 C언어를 포기하게 만든 원흉! 포인터부터 얘기해보죠. 포인터(*)란 아시다시피, 메모리 주소를 가리키는 변수입니다. 가리키는 곳은 언제든 변할 수 있고, 아무곳도 가리키지 않는 상태(NULL 포인터)도 있습니다. 참조자(&)란 뭘까요? 참조자는 변수의 다른 이름입니다. 포인터와 비슷하죠? 포인터와의 차이점은 참조자는 아무것도 가리키지 않는 상태가 없다는 것입니다. 포인터가 어려운 이유는 사용법 자체가 아니라 관리가 어렵기 때문입니다. 다음 코드를 살펴 보시죠. 포인터로 인해 발생할 수 있는 몇가지 상황을 보여줍니다. int *pDynamic= new int; int *ptr= pDynamic; delete pDynamic..
C 프로그래머가 알아야 할 것들 - Chapter 8 스레드 김성훈 (sunghun84@nate.com) (1) 프로세스와 스레드 스레드를 이해하려면 프로세스에 대한 이해가 선행되어야 합니다. 프로세스란 프로그램이 실행되는 단위를 말합니다. 지금 제가 이 문서를 작성하고 있는 OpenOffice도 프로세스고, 음악을 듣고 있는 aimp2도 프로세스, 메신져인 pidgin 모두 프로세스입니다. 일반적으로 프로그램의 실행 단위가 프로세스라고 보시면 됩니다. (한 프로그램 내에 여러 프로세스를 묶어 하나처럼 보이게 하는 경우도 있지만, 이런 경우는 예외로 생각하겠습니다.) 저는 지금 메신져를 켜놓고, 음악을 들으며 문서 작성을 하고 있는데요, 이렇게 세가지 작업을 한꺼번에 할 수 있는 것은, 윈도우즈가 멀티 ..
#ifdef _UNICODE #define _QUOTE(x)L ## x #define QUOTE(x)_QUOTE(x) #define _TO_STRING(x)# x #define TO_STRING(x)QUOTE(_TO_STRING(x)) #define __TFILE__QUOTE(__FILE__) #define __TFUNCTION__QUOTE(__FUNCTION__) #define __TLINE__TO_STRING(__LINE__) #define ENUM_TO_STRING( Enum )TO_STRING( Enum ) #else #define _QUOTE(x)# x #define QUOTE(x)_QUOTE(x) #define __TFILE____FILE__ #define __TFUNCTION____FUNCT..
- R-Value를 써라 if문에서 변수를 Right Value로 두어라. 실수로 비교문(==)이 아닌 대입문(=)이 사용했을 때의 실수를 막아준다. - 상수성(const 키워드)을 애용하라. 변경이 이루어지지 말아야 할 변수나 함수에 const 값 적극 이용하라. const는 변경이 되면 안되는 상황을 인지하게 해준다. - IN,OUT 매크로를 적극 활용하라 함수 인수의 IO가 어떻게 이뤄지는 IN, OUT 매크로를 써서 명시하라. - 리턴값은 enum형이나 define으로 정의해서 공통된 값을 적극 사용하라. 통일성 있는 규칙은 코드 분석이나 디버깅시에 직관적이다. - 전역 변수는 자제하라. static 변수나, 전역변수의 소멸 시점은 잡기 어렵다. 생성/소멸 순서가 중요하다면 특히나 static 또..
Steve Hollasch / Last update 2005-Feb-24 IEEE Standard 754 floating point is the most common representation today for real numbers on computers, including Intel-based PC's, Macintoshes, and most Unix platforms. This article gives a brief overview of IEEE floating point and its representation. Discussion of arithmetic implementation may be found in the book mentioned at the bottom of this article..
에러 메시지 에러번호 "WSAEINTR: Interrupted system call" 10004 "WSAEBADF: Bad file number" 10009 "WSACCESS: Permission denied" 10013 "WSAEFAULT: Bad address" 10014 "WSAEINVAL: Invalid argument" 10022 "WSAEMFILE: Too many open files" 10024 "WSAEWOULDBLOCK: Operation would block" 10035 "WSAEINPROGRESS: Operation now in progress" 10036 "WSAEALREADY: Operation already in progress" 10037 "WSAENOTSOCK: Socket ..
struct CHAR_COLLECTION_DATA { int CharID; int Value; int ValueCode; }; CHAR_COLLECTION_DATA CollectionData = {m_CharID, m_Value, m_ValueCode }; 이런 코드가 있었다. 기능을 추가 하시려다보니 습관적으로 struct CHAR_COLLECTION_DATA { int CharID; int ClassID; // 다른 변수를 중간에 추가함. int Value; int ValueCode; }; CHAR_COLLECTION_DATA CollectionData = {m_CharID, m_Value, m_ValueCode }; 같은 코드고 컴파일 오류도 없지만 원래 코드와 다르게, CharID, Value, ..
- Total
- Today
- Yesterday
- Rails
- ruby
- ftp
- EzShortcut
- RoR
- 임백준
- 바로가기 프로그램
- 게임개발포에버
- MS-SQL
- 디버깅
- SQLite Spy
- EasyExec
- NDC2013
- 멀티스레드
- 루비
- svn
- SDL
- TDD
- 디자인 패턴
- 좋은 프로그래머
- CppSQLite
- 리버스 엔지니어링
- perfmon
- c언어
- 조엘 온 소프트웨어
- 게임데브포에버
- 엘키
- Ruby on Rails
- TraceRoute
- 루비 온 레일즈
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |