第1个回答 2013-02-07
//实现参考下面 __VA_ARGS__
#define CCLOG(format, ...) cocos2d::CCLog(format, ##__VA_ARGS__)
void CCLog(const char * pszFormat, ...)
{
char szBuf[MAX_LEN];
va_list ap;
va_start(ap, pszFormat);
vsnprintf_s(szBuf, MAX_LEN, MAX_LEN, pszFormat, ap);
va_end(ap);
WCHAR wszBuf[MAX_LEN] = {0};
MultiByteToWideChar(CP_UTF8, 0, szBuf, -1, wszBuf, sizeof(wszBuf));
OutputDebugStringW(wszBuf);
OutputDebugStringA("\n");
WideCharToMultiByte(CP_ACP, 0, wszBuf, sizeof(wszBuf), szBuf, sizeof(szBuf), NULL, FALSE);
printf("%s\n", szBuf);
}
第3个回答 2014-07-30
C89是没有变参宏的,可以变通一下
#define DEBUG printf("%s,%d:",__FUNCTION__,__LINE__);printf