저 같은 경우 typedef는

typedef std::string String;
typedef std::wstring WString;

#ifdef _UNICODE
typedef WString TString
#else
typedef String TString;
#endif

혹은

typedef wchar_t WChar;

이런식으로 추후에 바뀔수도 있는 타입에 관해서는 한번 typedef를 써주고 있는데요, 다른 분들은 typedef를 어떻게 사용하시는지요...


또 #define의 경우 저는 복잡한 함수용으로는 극히 제한적으로 쓰고, 이미 굳어진 형태의 함수가 여러개 존재할 때, 그 함수를 만들거나 정의할때 쓰곤 하는데요,

예를 들어

#define DECLARE_FUNCTION(funcName)    void funcName(void *pArg1, void *pArg2, void *pArg3, *pArg4, *pArg5)
#define IMPLEMENT_FUNCTION(className, funcName)    void className::funcName(void *pArg1, void *pArg2, void *pArg3, *pArg4, *pArg5)

이렇게 말이죠...
혹은, 플랫폼 마다 같은 역할을 하는 함수명이 조금씩 다른 경우에도 쓰고 있습니다.

#ifdef _WIN32
#define func winfunc
#else
#define func otherfunc
#endif

어떤 책에서는 #define은 자제하라고 쓰여있지만, 저는 이 정도 수준의 #define 사용은 가독성이나 유지보수적인 측면에서 좋다고 생각하는데,


다른 분들은 어떻게 생각하시는지 궁금합니다...