Pull to refresh

Об операторах

Reading time1 min
Views966
Задумался тут над вопросом. В языке Си для операторов && и || определен порядок вычисления операндов. Более того, если левый операнд вернул ложь для && или истину для ||, то правый вычисляться уже не будет. Это позволяет использовать конструкции по типу «smth or die», которые сплошь и рядом можно встретить в скриптовых языках:
(f = fopen("file", "r")) || fprintf(stderr, "Can not open file\n");
Вы когда нибудь видели такой код на Си? Я нет. Вот интересно почему :) Предвидя ответы «слишком длинно», «некрасиво» и т.п.: тогда почему же в скриптовых языках оно так распространено?
Tags:
Hubs:
Total votes 18: ↑11 and ↓7+4
Comments23

Articles