while 문을 사용하다보면 의도치 않게 기본적인 실수를 할때가 있습니다..
그러다 잘못하면 무한루프에 빠지게 되는데...
#ifdef _DEBUG #define WHILE WHILE_DEBUG #else #define WHILE while #endif // DEBUG #define WHILE_DEBUG(type) \ int __nCount = 0; \ while( type ) \ if(++__nCount > 100000) \ { printf("[FileName:%s][Func:%s][Line:%d]",__FILE__,__FUNCTION__,__LINE__); break; } \ else \ void main() { int nCnt = 0; WHILE(1) { ++nCnt; } printf("결과값 : %d\n",nCnt); }
#define Singleton( _T )\ private:\ _T();\ virtual ~_T();\ public:\ static _T* Instance()\ {\ static _T selfInstance;\ \ return &selfInstance;\ }
class CSingleTonTest { Singleton(CSingleTonTest); public: int k; }; void main() { CSingleTonTest::Instance()->k; // 정상 CSingleTonTest* pTest = new CSingleTonTest(); // 에러.. }
Get Set쉽게 하기..(라인줄이기?)
#define GetSetter(Name,var,Type)\ Type Get##Name() const { return var;}\ void Set##Name(Type _param) { var = _param; } class CTest { public: GetSetter(Count,nCnt,int); private: int nCnt; }; void main() { CTest test; test.SetCount(10); printf("%d\n",test.GetCount()); }
'C..C++....' 카테고리의 다른 글
visual studio 2012에서 gtest 컴파일시 std::touple 에러 해결방법.. (0) | 2012.08.24 |
---|---|
tbb Visual studio 2012에서 빌드하기.. (0) | 2012.07.20 |
콘솔 윈도우 강제종료시 이벤트 처리하기 (1) | 2012.03.21 |
boost 컴파일 하기 (0) | 2012.03.20 |
OPENSSL visual studio 에서 사용하기.. (0) | 2012.03.20 |