Стив Саммит. Язык си в вопросах и ответах.Стиль.
Ответы на вопросы разбиты по темам:
4. Выражения
5. ANSI C
7. Списки аргументов переменной длины.
8. Булевы выражения и переменные.
9. Структуры, перечисления и объединения.
10. Декларации.
13. Lint.
14. Стиль.
15. Операции с плавающей точкой.
16. Интерфейс с операционной системой.
17. Разное (Пребразование Fortran -> C , грамматики для YACC и т.п.)
Стиль.
14.1 Может ли простой и приятный трюк
if(!strcmp(s1, s2))
служить образцом хорошего стиля?
О: Стиль не особенно хороший, хотя такая конструкция весьма популярна. Тест удачен в случае равенства строк, хотя по виду условия можно подумать, что это тест на неравенство.
Есть альтернативный прием, связанный с использованием макроса
#define Streq(s1, s2) (strcmp((s1), (s2)) == 0)
Вопросы стиля программирования, как и проблемы веры, могут обсуждаться бесконечно. К хорошему стилю стоит стремиться, он легко узнаваем, но не определим.
14.2 Каков наилучший стиль внешнего оформления программы?
О: K&R, приводя пример, которому чаще всего следуют, снабдили его примечанием, предоставляющим Вам окончательный выбор:
Положение скобок менее важно, хотя люди склонны проявлять фанатизм в таких вопросах. Мы выбрали один из нескольких популярных стилей. Выберите тот стиль, который Вам больше подходит, и точно ему следуйте.
Не так важно, чтобы стиль был «идеален». Важнее, чтобы он применялся последовательно и был совместим (со стилем коллег или общедоступных программ). Если требования к программированию (местные правила или требования фирмы) не касаются стиля, и Вы не испытываете желания изобрести свой собственный стиль, то просто следуйте K&R.
(Давайте не будем повторять бесконечные споры о преимуществах и недостатках того или иного расположения отступов и скобок. См. также Indian Hill Style Guide).
Так трудно определимое понятие «хороший стиль» включает в себя гораздо больше, чем просто внешнее оформление программы; не тратьте слишком много времени на отступы и скобки в ущерб более существенным слагаемым качества.
Смотри: K&R Разд. 1.2 c. 10.
14.3 Где достать «Indian Hill Style Guide» и другие рекомендации по стилю программирования?
О: Различные документы доступны через ftp:
Сервер: Файл или директорий:
cs.washington.edu ~ftp/pub/cstyle.tar.Z (128.95.1.4) (переработанный Indian Hill guide)
cs.toronto.edu doc/programming
ftp.cs.umd.edu pub/style-guide