GCC 4.4.2的C89交叉编译宏名
我有下面的代码。
#if defined (__linux__)
log_msg(stderr, "Socket failed [ %s ] [ %s ] [ %d ]\n",
strerror(errno), __func__, __LINE__);
#elif (WIN32)
log_msg(stderr, "Socket failed [ %s ] [ %s ] [ %d ]\n",
strerror(errno), __FUNCTION__, __LINE__);
#endif
因为我在编译Windows和Linux我不得不分开,因为它们使用不同的宏用于获取函数名功能和FUNC如上log_msg。
但是,我有很多这些log_msg来写,只是想知道有无论如何,我可以避免为了一个宏不同而写两次吗?
非常感谢您的任何建议,
25完全相同的答案糟糕秒。 – 2010-01-19 15:52:06
@克里斯,很好的比赛。 – 2010-01-19 15:53:13
谢谢,如果我在过去的8年中编写了任何C语言,并且不必查找正确的方式来定义某些内容,我可能会赢。 – 2010-01-19 16:20:07