首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++支不支持可变参数宏解决思路

2012-10-19 
C++支不支持可变参数宏比如我要写:#define WRITE_LOG(LOG_TYPE,MESSAGE,...)\CMyLog *p CMyLog::GetInst

C++支不支持可变参数宏
比如我要写:
#define WRITE_LOG(LOG_TYPE,MESSAGE,...)\
CMyLog *p = CMyLog::GetInstance();\
p->WriteLog(LOG_TYPE,MESSAGE,__VA_ARGS__);
是否可以?

[解决办法]
http://msdn.microsoft.com/en-us/library/ms177415(v=vs.80)
[解决办法]

C/C++ code
  #define WRITE_LOG LogService::getInstance().write  static void doWrite(char const* message, char  const * logFile)  {        std::ofstream logStream(logFile, std::ios_base::app);    if(logStream)    {      logStream <<  message << std::endl;    }    else    {      std::cerr << message << std::endl;    }  }  void LogService::write(char const * format, ...)  {    static char buffer[512];    va_list args;    va_start (args, format);    vsprintf (buffer, format, args);    doWrite (buffer, logFile_.c_str());    va_end (args);            } 

热点排行