2010-10-12 5 views

ответ

0

Падение через?

Или вы говорите об определенной инструкции switch без перерывов, называемой Duff's Device?

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); 
    } 
} 
0

Когда исполнение продолжается от одного случая к другому, оно называется «провалом».

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

    case 2: 
     // do something else 
     break; 

    case 3: 
     // do another thing 
} 

Execution будет «проваливаться» от случая к случаю 1, но не от случая к случаю 2 3. Является ли это то, что вы спрашиваете?

2

Оператор switch без перерывов (и без петли, так что это не устройство Даффа), я бы просто позвонил в таблицу jump table.

Ни один из инструментов, обычно используемых для структурированного программирования, это точно.

+0

Спасибо за помощь, таблица прыжка/ветви - это тот термин, который я искал. – fmunshi