我用的是VS2010,昨天编译程序时,遇到这么一个错误提示——error C2065: '__LINE__Var' : undeclared identifier
    
    我看了一下,错误的行是使用了一个宏,如下:static void GatParallel(LPVOID lpParam)
{
    THREAD_FUNC(M_PARALLEL_FOR, gat(cmImg, index));
}    这是一个线程的执行函数,THREAD_FUNC是带两个参数的宏,THREAD_FUNC的宏定义大致是(省略了前后):#define THREAD_FUNC(cycle_type, which_algo) \
do\
{\
    ...\
    cycle_type(which_algo);\
    ...\
} while (0)\    M_PARALLEL_FOR也是一个宏,大致定义如下:#define M_PARALLEL_FOR(algo) \
do\
{\
    parallel_for(long(1), long(bands+1), [&](long band)\
    {\
        ...\
        CMatrix cmImg0 = algo;\
        ...\
    });\
} while (0)    gat(cmImg, index)则是一个函数调用(括号内的参数是省略的部分里定义的)。
    
    程序基本上就是这样,我编译了之后就报了开始提到的那个错误,我在网上搜了一下,有一个网址上提到了同样的问题
http://www.cnblogs.com/MichaelPeng/archive/2010/12/06/1898107.html。我按照上面的方法设置了一下编译器的选项,的确可以编译了,但是我不太明白就这样改一下编译器的设置是否有问题?为什么这样改就可以编译了呢?望大神解答啊。