C 测试函数时出现未知的分析错误
我有下面的函数,它的作用似乎与它应该的一样,但是当通过测试程序运行程序时,我收到了错误:parse error:[int xSwapped=((255看起来您使用的是一个设置为旧C标准的C编译器。在C99之前,您不能在声明之前放置可执行语句 您可以通过将C 测试函数时出现未知的分析错误,c,parsing,parse-error,C,Parsing,Parse Error,我有下面的函数,它的作用似乎与它应该的一样,但是当通过测试程序运行程序时,我收到了错误:parse error:[int xSwapped=((255看起来您使用的是一个设置为旧C标准的C编译器。在C99之前,您不能在声明之前放置可执行语句 您可以通过将xSwapped的声明移到顶部来解决此问题: int nShift = n<< 3; int mShift = m<< 3; int nMask = x & (255 << nShift); int
xSwapped
的声明移到顶部来解决此问题:
int nShift = n<< 3;
int mShift = m<< 3;
int nMask = x & (255 << nShift);
int mMask = x & (255 << mShift);
int xSwapped; // Declaration
nMask = 255 & (nMask >> nShift);
mMask = 255 & (mMask >> mShift);
nMask = nMask << mShift;
mMask = mMask << nShift;
xSwapped = ((255 << nShift) | (255 << mShift)); // Assignment
return (~xSwapped & x) | nMask | mMask;
int nShift=n mShift);
nMask=nMask是否使用MSVC(或C89编译器)?@BLUEPIXY否,不在windows上测试仪使用MIT CILK组的ANSI C编译器如果使用GCC,请使用-std=c99
选项。或者该行移到int mShift=m之后
int nShift = n<< 3;
int mShift = m<< 3;
int nMask = x & (255 << nShift);
int mMask = x & (255 << mShift);
int xSwapped; // Declaration
nMask = 255 & (nMask >> nShift);
mMask = 255 & (mMask >> mShift);
nMask = nMask << mShift;
mMask = mMask << nShift;
xSwapped = ((255 << nShift) | (255 << mShift)); // Assignment
return (~xSwapped & x) | nMask | mMask;