我试图在我的CLI程序中使用相当长的定义但是由于这个原因我得到错误的dosens。
这是我的代码。
#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编译器中的新行字符不同?