テストプログラムでプログラムを実行しているときに、以下の関数が動作するように見える以下の関数がありますが、エラーが発生します。解析エラー:[int xSwapped =((255 < < nShift)|(255 < < mShift));] 宣言されていない変数 `xSwapped ':[return(〜xSwapped & x)| nMask | mMask;]関数のテスト時に不明な解析エラー
int dl15(int x, int n, int m){
// calculates shifts, create mask to shift, combine result
// get number of bytes needed to shift, multiplying by 8
// get Masks by shifting 0xff and shift amount
// shift bits to required position
// combine results
int nShift = n<< 3;
int mShift = m<< 3;
int nMask = x & (255 << nShift);
int mMask = x & (255 << mShift);
nMask = 255 & (nMask >> nShift);
mMask = 255 & (mMask >> mShift);
nMask = nMask << mShift;
mMask = mMask << nShift;
int xSwapped = ((255 << nShift) | (255 << mShift));
return (~xSwapped & x) | nMask | mMask;
}
何か不足していることはありません、ありがとうございます。
をあなたはMSVC(もしくはC89コンパイラ)を使用していますか? – BLUEPIXY
@BLUEPIXYいいえ、Windowsではなく、MIT CILKグループのANSI Cコンパイラを使用しています – Silverfin
GCCを使用する場合は、 '-std = c99'オプションを使用してください。またはその行が 'int mShift = m << 3;の後に移動する – BLUEPIXY