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