Зачем использовать #if 0 для комментирования блока? - PullRequest
28 голосов
/ 02 сентября 2010

Обратный инженерный код, и я отчасти потрясен этим стилем, но я хотел убедиться, что нет веских оснований для таких вещей ...

Это только я или это ужасностиль кодирования

if ( pwbuf ) sprintf(username,"%s",pwbuf->pw_name);
else sprintf(username,"%d",user_id);

И почему код переноса не предназначен для компиляции в

#if 0
....
#endif

Вместо комментариев?


РЕДАКТИРОВАТЬ: так, как некоторые объясняли нижеэто связано с возможностью flummox / * * /, которую я не осознавал.

Но я все еще не понимаю, почему бы просто не использовать инструменты среды программирования или макросы любимого текстового редактора для блокировки комментариевэто с использованием "//"

разве это не НАМНОГО более просто и легко узнать визуально, чтобы пропустить?


Разве я неопытен в C и пропустить, почему эти вещи могут быть хорошей идеей - или нет никакого оправдания, и я оправдан, чувствуя раздражение от того, насколько уродлив этот код?

Ответы [ 11 ]

0 голосов
/ 02 сентября 2010

Ух ты!Не слишком остро реагируйте ...

Я бы назвал это неряшливым, потому что расстояние между ними больше, чем что-либо другое.У меня было время, когда я находил, что лучше помещать короткие операторы в одну строку с их IF, хотя эти операторы растягивают его.

Встроенный стиль лучше для вертикальной краткости ... может быть легко разбит на4, больше строк

if (pwbuf) 
  sprintf(username,"%s",pwbuf->pw_name); 
else 
  sprintf(username,"%d",user_id); 

Лично я ненавижу следующий стиль, так как он такой многословный, что затрудняет просмотр файла.

if (pwbuf) 
{
  sprintf(username,"%s",pwbuf->pw_name); 
}
else
{ 
  sprintf(username,"%d",user_id); 
}
...