請參閱的C代碼下面的代碼片段:爲什麼布拉克的RVAL
PM_RAISE(retexn, exn)
do
{
retexn = (exn);
gVmGlobal.errFileId = __FILE_ID__;
gVmGlobal.errLineNum = (uint16_t)__LINE__;
} while (0)
4號線,爲什麼exn
用方括號括?
編輯(在回答IntermediateHacker
)這裏是代碼的原始片段:
#if __DEBUG__
#define PM_RAISE(retexn, exn) \
do \
{ \
retexn = (exn); \
gVmGlobal.errFileId = __FILE_ID__; \
gVmGlobal.errLineNum = (uint16_t)__LINE__; \
} while (0)
#else
#define PM_RAISE(retexn, exn) \
retexn = (exn)
#endif
這可能是一些宏觀或定義。顯示更多代碼。 – ApprenticeHacker 2012-03-19 11:40:02
看起來像一個宏定義給我,所以你可以重新格式化它,包括'#define'嗎? – hroptatyr 2012-03-19 11:40:46
這是一個宏嗎?你有沒有省略'#define'和\ s? – 2012-03-19 11:41:58