Хуже, чем Duff's Device
От: Alexander G Украина  
Дата: 11.08.21 17:48
Оценка: 1 (1) +1 :))
  Я предупредил
#ifdef __cplusplus
#  include <cstdio>
#else
#  include <stdio.h>
#endif

int main(void) {
    for (int i = 0; i < 3; i++) {
        printf("%d: ", i);
        switch (i) {
        case 0:
            putchar('a');
            // @fallthrough@
            if (0) {        // fall past all of case 1 (!)
        case 1:
            putchar('b');
            // @fallthrough@
            }
        case 2:
            putchar('c');
            break;
        }
        putchar('\n');
    }
    return 0;
}

  Вывод
0: ac
1: bc
2: c

Отсюда: https://stackoverflow.com/q/64475978/2945027
Русский военный корабль идёт ко дну!
Re: Хуже, чем Duff's Device
От: SkyDance Земля  
Дата: 11.08.21 20:15
Оценка: +6
AG>Отсюда: https://stackoverflow.com/q/64475978/2945027

И чем оно хуже? Как по мне так довольно легко прочитать и понять, что будет выведено. По крайней мере мои ожидания точно совпали с тем, что написано.
Re[2]: Хуже, чем Duff's Device
От: Alexander G Украина  
Дата: 12.08.21 05:14
Оценка: +1
Здравствуйте, SkyDance, Вы писали:

AG>>Отсюда: https://stackoverflow.com/q/64475978/2945027


SD>И чем оно хуже? Как по мне так довольно легко прочитать и понять, что будет выведено.

Ну такое себе. Слишком неожиданное применение if. Я бы предпочёл честный goto в подобном случае.
Русский военный корабль идёт ко дну!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.