|
printf("Hello %s!\n", sex? "boy" : "girl");
if sex then s:='boy' else s:='gerl';
writeln('Hello '+s+'!');
Согласитесь, выглядит гораздо читабельней. Разве что sex я бы объявил как перечисляемый тип, а то получается boy правильный, а girl - ложный.
Или, если вы пишете по win,можно так:
writeln(Format('Hello %s!',[s]));
Второй пример:
dst^:=src^; inc(dst); inc(src);
Уверяю вас, в обоих вариантах код будет одинаковый, а читабельность гораздо лучше и меньше возможности сделать ошибку.
А теперь встречный вопрос:
Попробуйте на C включить в строку код, заданный символической константой, например, нестандартный управляющий символ:
На паскале:
const
alignRught=1;
alignCenter=2;
str=alignRight+'пример строки';
Где-то в программе:
case str[i] of
alignRight:setRight;
alignCenter:setCenter;
else ...
end;
Пробуем на C:
Вариант 1.
#define alignRight 1
#define alignCenter 2
char * str= ??? - включить в строку не получиться
Вариант 2.
#define alignRight "1"
#define alignCenter "2"
char * str = alignRight "пример строки"; /* Вроде получилось */
switch (* str)
case alignRight: setRight();
/* Синтаксическая ошибка - alignRight - указатель на строку, а не символ */
Как мне пришлось сделать:
#define alignRight 1
#define alignRightStr "1"
...
Соответственно, исправлять код символа нужно в 2 местах - очень существенный недостаток.
И таких примеров можно привести много.
E-mail: info@telesys.ru