1

改行のない switch ステートメントの「技術名」を知っている人はいますか?

私はいくつかの教科書に目を通し、かなり長い間オンラインで検索しましたが、結果はありませんでした。

4

3 に答える 3

2

ブレークのない switch ステートメント (およびループがないため、Duff のデバイスではありません) では、jump tableを呼び出すだけです。

確かに、構造化プログラミングに一般的に使用されるツールの 1 つではありません。

于 2010-10-12T00:13:42.063 に答える
0

落ちる?

それとも、 Duff's Deviceと呼ばれる、区切りのない特定の switch ステートメントについて話しているのでしょうか。

send(to, from, count)
register short *to, *from;
register count;
{
    register n=(count+7)/8;
    switch(count%8){
        case 0: do{ *to = *from++;
        case 7:     *to = *from++;
        case 6:     *to = *from++;
        case 5:     *to = *from++;
        case 4:     *to = *from++;
        case 3:     *to = *from++;
        case 2:     *to = *from++;
        case 1:     *to = *from++;
        }while(--n>0);
    }
}
于 2010-10-12T00:12:23.547 に答える
0

実行が 1 つの Case 句から次の句に続く場合、それは「フォールスルー」と呼ばれます。

switch (i) {
    case 1:
        // do something

    case 2:
        // do something else
        break;

    case 3:
        // do another thing
}

実行はケース 1 からケースへと "フォール スルー" しますが、ケース 2 からケース 3 へは "フォール スルー" しません。

于 2010-10-12T00:12:44.250 に答える