私はubuntuでmitkをコンパイルしようとしていますが、このエラーが発生しました:
エラー:このステートメントは失敗する可能性があります[-Werror = implicit-fallthrough =]
ここにコードの一部があります:
/** Get memory offset for a given image index */
unsigned int GetOffset(const IndexType & idx) const
{
const unsigned int * imageDims = m_ImageDataItem->m_Dimensions;
unsigned int offset = 0;
switch(VDimension)
{
case 4:
offset = offset + idx[3]*imageDims[0]*imageDims[1]*imageDims[2];
case 3:
offset = offset + idx[2]*imageDims[0]*imageDims[1];
case 2:
offset = offset + idx[0] + idx[1]*imageDims[0];
break;
}
return offset;
}
どんな助けでもお願いします。
キーワードブレークを各caseステートメントに追加する必要があります。追加しない場合、コードは条件に一致するケースから実行され、引き続き満たされます。
ブレーク;
例:VDimension = 4の場合、コードはケース4から実行されます=>ケース3に進みます=>ケース2に続き、中断します。それは以下のコマンドを実行することを意味します:
offset = offset + idx[3]*imageDims[0]*imageDims[1]*imageDims[2];
offset = offset + idx[2]*imageDims[0]*imageDims[1];
offset = offset + idx[0] + idx[1]*imageDims[0];
break;
return offset;
あなたのコードは次のようになるはずです:
/** Get memory offset for a given image index */
unsigned int GetOffset(const IndexType & idx) const
{
const unsigned int * imageDims = m_ImageDataItem->m_Dimensions;
unsigned int offset = 0;
switch(VDimension)
{
case 4:
offset = offset + idx[3]*imageDims[0]*imageDims[1]*imageDims[2];
break;
case 3:
offset = offset + idx[2]*imageDims[0]*imageDims[1];
break;
case 2:
offset = offset + idx[0] + idx[1]*imageDims[0];
break;
}
return offset;
}