代碼如下。編譯器說“預期為 )”,但我不明白: ( 和 ) 是匹配的。我做錯了什麼?
#define CR_SUCCESS 0
#define EXIT_IF_FAILS(varResult, callString) \
(\
varResult = callString; \
if(varResult != CR_SUCCESS) \
{ \
return -1; \
} \
)
int testFunction(int a, int b)
{
return -1;
}
int main()
{
int result;
EXIT_IF_FAILS(result, testFunction(1, 2));
}
擴大,你的main
樣子
int main()
{
int result;
(
result = testFunction(1, 2);
if(result != CR_SUCCESS)
{
return -1;
}
)
}
這是無效的,因為您不能在語句周圍使用括號。
對於當您想要一個像語句一樣的宏時可能會做的一些事情,請參閱 C++ 常見問題解答“應該如何處理具有多行的宏?”
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句