0

我得到了一些代码,我正在尝试修复一些编译错误:

StkFrames& PRCRev :: tick( StkFrames& frames, unsigned int channel )
{
#if defined(_STK_DEBUG_)
  if ( channel >= frames.channels() - 1 ) {
    errorString_ << "PRCRev::tick(): channel and StkFrames arguments are incompatible!";
    handleError( StkError::FUNCTION_ARGUMENT );
  }
#endif

  StkFloat *samples = &frames[channel];
  unsigned int hop = frames.channels();
  for ( unsigned int i=0; i<frames.frames(); i++, samples += hop ) {
    *samples = tick( *samples );

    *samples++; <<<<<<<<<--------- Expression result unused.

    *samples = lastFrame_[1];
  }

  return frames;
}

我不明白代码试图做什么。代码很大,我修复了很多。但是谷歌搜索对此不起作用。

有任何想法吗?

4

1 回答 1

0

首先,你做一个增量(实际上给你警告的行)。

*samples++;

然后你给那个变量分配别的东西,这使得之前的动作没有被使用。

*samples = lastFrame_[1];

我建议您更仔细地阅读“for”循环中的这段代码。看起来不太合乎逻辑。

于 2012-11-26T13:32:17.280 回答