1

我试图在我的 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 编译器中的换行符不同吗?

4

0 回答 0