我正在尝试创建一个简单的测试宏,但我在以下几行中遇到错误。你们中的任何人都知道我为什么或如何修理它们?
#define test(condition) do{\
if (condition)
{\ //// <-----Expected identifier or (
NSlog @"passed: " %@ #condtion); \
}
else
{\
NSLog(@"failed: " @ #condition); \
}
} //// <-----extraneous closing brace ( "}")
答案 0 :(得分:2)
您需要在多行宏的每一行末尾添加反斜杠(除了最后一行)。
#define test(condition) do{\
if (condition) \
{\
NSlog @"passed: " %@ #condtion); \
} \
else \
{ \
NSLog(@"failed: " @ #condition); \
} \
}
答案 1 :(得分:0)
你可以简化一下。这里:
#define test(condition) NSLog("%s: %s\n", condition ? "Passed" : "Failed", #condition);
请致电:
int i = 6;
test(i > 8);
test(i < 8);
输出:
Failed: i > 8
Passed: i < 8