После программирования на C в течение нескольких лет я понял, что игнорирую соглашение C о возвращении нуля из функции, указывающей на успех. Соглашение кажется мне семантически неправильным, поскольку ноль, конечно, ложен. Проблема в том, что мне нравится называть функции, например, is_valid_foobar()
, и чтобы соответствовать условию «ложные средства успеха», мне нужно быть более расплывчатым ...
то есть вместо:
if ( ! is_valid_foobar() ) {
return (error);
}
Другие программисты пишут:
if ( validate_foobar() ) {
return (error);
}
И моя реализация выглядит так:
int is_valid_foobar (int foobar ) {
if ( foobar < MAX_ALLOWED ) {
return TRUE;
}
return FALSE;
}
На самом деле я не замечал этого в обзорах кода. Так что я думаю, что это не такая уж ужасная привычка, но она «нетрадиционная». Мне любопытно, что думают люди.
Я очень осторожен с выбором, который я делаю для имен функций и переменных, и типичным комментарием к обзору является "код действительно ясен", и, кроме того, меня совсем не беспокоит необходимость набирать дополнительный 1013 * в начале вызова функции. Но что ты говоришь, о могущественные из С.О?