ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 ноября
207275 Топик полностью
fk0, легенда (23.08.2010 13:29, просмотров: 109) ответил testerplus на В соглашении об оформлении от micrium есть п. 1.04.03 на этот счет ->
На счёт возможных ошибок -- надумано. warning или error дают все компиляторы. Зато нарушается принцип "не плодить сущностей сверх необходимого", что ведёт к бардаку, говнокоду и ошибкам. И программисту не видно в *.c переменной -- размазывается код по двум файлам, ещё причина ошибок. Видел аналогичный вариант с #define extern <пусто>... глюкодром сказочный возможен. Считаю такой "кодинг стандарт" плохим из-за этого пункта. Зато других местах у них перегибов полно -- где нажать ентер, сколько пробелов написать -- дурдом. Да и вообще использование препроцессора и typedef -- его нужно уметь ограничивать. Самодельные типы вместо стандартных, макросы на все случаи жизни -- это первый признак говнокода, IMHO. Изобретение из C собственного языка программирования, который в итоге только хуже будет чем стандартный C -- это от того, что программист стандартным C пользоваться не умеет и что есть в C89 или C99 часто даже не догадывается и изобретает самодельные велосипеды кривые. И ещё хочу сказать на счёт конструкции такой: #ifndef BLABLABLA #define BLABLABLA ...код... #endif применяется в *.h файлах. Так вот у них там такой пример в кодинг-стандарте, так вот так делать не нужно -- это тоже плохой пример. Если хочется такое сделать, то #define нужно делать на строчку выше перед #endif, а не в начале файла (ибо иначе необнаруживается рекурсивное включение, а тихо пропускается). А рекурсивное включение -- это уже детектор говнокода где-то и потенциальные глюки.
[ZX]