iosマクロコマンドのテストエラー:「Expected identefier」

2293 ワード

簡単なテストマクロ命令を書いて、次のコードでエラーを報告して、どのように修復するか分かりませんか?ありがとう
#define test(condition) do{\
    if (condition)
    {\        //// <-----Expected identifier or (
        NSlog @"passed: " %@ #condtion); \

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

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

2つの回答


 
各行のマクロ命令の末尾にスラッシュを付けるべきで、最後の1つは追加しないでください.
#define test(condition) do{\
    if (condition) \
    {\
        NSlog @"passed: " %@ #condtion); \
    } \
    else \
    { \
        NSLog(@"failed: " @ #condition); \
    } \
}


簡単な方法:
#define test(condition) NSLog("%s: %s
"
, condition ? "Passed" : "Failed", #condition);

呼び出し:
int i = 6;
test(i > 8); test(i < 8); 

出力:
Failed: i > 8
Passed: i < 8

http://ask.csdn.net/questions/1090