私はいくつかのCコードを書いています。私のコードには2つのネストループがあります。特定の条件では、内側のループからbreak
に、外側のループではcontinue
にしたいです。私は外側のループのコードの最後にラベルを使用してこれを達成しようとしましたが、その条件ではそのラベルgoto
です。しかしgcc
は複合文の最後にラベルを付けることができないというエラーを出します。何故なの?Cでは、なぜgotoラベルの後に文が必要ですか?
注1:これはswitch
の文ではなく、であり、の質問は、elsewhereと回答しています。
注2:これはスタイルについての質問ではなく、goto
ステートメントまたは条件変数を使用する必要があるかどうかを問うものではありません。
EDIT:人々は、たとえばを求めていると、アレイはあなたが簡単に記述する必要が別の配列
int superArray[SUPER_SIZE] = {...}, subArray[SUB_SIZE] = {...};
int superIndex, subIndex;
for (superIndex=0; superIndex<SUPER_SIZE-SUB_SIZE; superIndex+=1)
{
for (subIndex=0; subIndex<SUB_SIZE; subIndex+=1)
if (superArray[superIndex+subIndex] != subArray[subIndex])
goto break_then_continue;
// code that executes if subArray is a sub array
break_then_continue:
}
あなたが得るエラーメッセージを再現する小さなプログラムを提供することができますか? – sarnold
Velociraptorsには幸運を覚えておいてください。 – wim