我试图在我的 CLI 程序中使用很长的定义,但因此我得到了很多错误。
这是我的代码。
#define OPERATION_MACRO(character) \
array<Byte>^ opRes = gcnew array<Byte>(args[0]->Length); \
for(int i=0;i<args[0]->Length;i++) \
{ \
double result=0; \
for(int k=0;k<args->Length;k++) \
{ \
result character##= args[k][i]; \
} \
graphicUtils::round(result); \
opRes[i] = result; \
} \
return opRes;
array<Byte>^ myInterpreter::mathOp(array< array<Byte>^ >^ args, Char opr)
{
switch(opr)
{
case '*':
OPERATION_MACRO(*)
case '/':
OPERATION_MACRO(/)
case '+':
OPERATION_MACRO(+)
case '-':
OPERATION_MACRO(-)
case '%':
OPERATION_MACRO(%)
case '^':
OPERATION_MACRO(^)
}
}
是因为 CLI 编译器中的换行符不同吗?