Языки программирования - концепции и принципы

С использует тот факт, что


Хотя стиль программирования языка С использует тот факт, что присваи­вание является выражением, этого, вероятно, следует избегать как источник скрытых ошибок программирования. Весьма распространенный класс оши­бок вызван тем, что присваивание («=») путают с операцией равенства («==»). В следующем операторе:

C

If (i=j)...

программист, возможно, хотел просто сравнить i и j, не обратив внимания, что значение i изменяется оператором присваивания. Некоторые С-компиляторы расценивают это как столь плохой стиль программирования, что выдают пре­дупреждающее сообщение.

    Полезным свойством языка С является комбинация операции и присваи­вания:



C

v+=e;                                                  /* Это краткая запись для... */                     

 v = v + е;                                           /*    такого оператора. */

Операции с присваиванием особенно важны в случае сложной переменной, включающей индексацию массива и т.д. Комбинированная операция не толь­ко экономит время набора на клавиатуре, но и позволяет избежать ошибки, если v написано не одинаково с обеих сторон от знака «=». И все же комбинированные присваивания — всего лишь стилистический прием, так как оптимизирующий компилятор может удалить второе вычисление адреса v.        

     Можно предотвратить присваивание значения объекту, объявляя его как константу.

const int N = 8;                             /* Константа в языке С */

 N: constant Integer := 8;             — Константа в языке Ada

Очевидно, константе должно быть присвоено начальное значение.

          Есть различие между константой и статическим значением (static value), которое известно на этапе компиляции:

procedure P(C: Character) is

 С1 : constant Character := С;

Ada

 С2: constant Character  :='х';

Begin



case C is

when C1 =>                       -- Ошибка, не статическое значение

when C2 =>                       -- Правильно, статическое значение


Содержание раздела