ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
2 мая
1058136 Топик полностью
Vit (06.12.2020 15:16, просмотров: 549) ответил fk0 на Во-первых p_tsk = &tasks[++i]. Во-вторых надоели идиоты: оператор "запятая" ничем не плох, даже хорош по сравнению с вариантами вроде ++*i-- так как порядок очевиден -- слева направо. Оператор "запятая" от "точки с запятой" отличается только временем жизни временных переменных (до "точки с запятой") и возможностью использования в контексте выражения (а не оператора). В языке C полезные применения: как раз избавление от ++*i--, возможность записать последовательность
От идиота слышу. Твоё "во-первых" при выполняемой перед этим проверке if ( i>=TAB_SZ ) break; вызывает обращение за границу массива и это нужно вылечить, а не тут говном исходить. По логике действительно нужен преинкремент. По тексту правильнее инкремент делать до проверки на маскимальный индекс, а присваивание указателя после. Работа с задачами не из списка, а из массива, в этой интерпретации делается пробежкой по всему массиву, до первой "задачи-пустышки". Обычно это 

всё-равно масло-масляное, ибо размер массива на практике подрезают под фактическое количество задач.

Насчет оператора "запятая" мнение простое - то, что требует запоминания (равно заглядывания в букварь), - напрягает. Кто-то, например, козыряет несклерозом и не ставит скобок, зная приоритеты операторов в Си (не в математике, а именно в Си). Мне довелось писать на некотором количестве других языков, потому сильно проще выразить приоритет скобками, чем лезть в букварь. Иначе нет места в башке для запоминания более важных вещей. С запятой скобки не сильно гармонируют:), потому скорее таки напрягает