0

簡単なテスト マクロを作成しようとしていますが、次の行にエラーがあります。なぜ、またはどのように修正できるか知っている人はいますか?

#define test(condition) do{\
    if (condition)
    {\        //// <-----Expected identifier or (
        NSlog @"passed: " %@ #condtion); \

    }
    else
    {\
        NSLog(@"failed: " @ #condition); \

    }
}   //// <-----extraneous closing brace ( "}")
4

2 に答える 2

2

複数行マクロのすべての行の最後にバックスラッシュが必要です(最後を除く)。

#define test(condition) do{\
    if (condition) \
    {\
        NSlog @"passed: " %@ #condtion); \
    } \
    else \
    { \
        NSLog(@"failed: " @ #condition); \
    } \
}
于 2013-01-14T02:20:56.887 に答える
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
于 2013-01-14T02:20:35.297 に答える