Языки программирования для численных методов. Глушакова Т.Н - 41 стр.

UptoLike

41
3.6. Арифметические преобразования
При выполнении арифметических операций в языке С действуют
следующие правила преобразования типов:
1) операнды типа char и short преобразуются к типу int, а типа float
к типу double;
2) если один из двух операндов имеет тип double, другой операнд
преобразуется к типу double (предполагается, что второй операнд не имеет
тип double) и результат операции будет также типа double;
3) если один из двух операндов имеет тип long, другой операнд
преобразуется к типу long (предполагается, что он не имеет тип long), и
результат будет также иметь тип long;
4) если один из операндов имеет тип unsigned, тогда и другой
операнд преобразуется к типу unsigned (предполагается, что он не был
типа unsigned),. и результат также будет иметь тип unsigned;
5) если не выполнены условия 1 -4, оба операнда должны быть типа
int, и результат имеет тип int.
Таким образом, значения приводятся к тому типу, который
позволяет представить больший диапазон значений (во избежание
переполнения ).
3.7. Константные выражения
Константным называется выражение, которое всегда дает
единственное значение. В языке С константные выражения требуются: при
инициализации внешних статических переменных; после ключевого слова
case в операторе switch; при определении границ массива. В последних
двух случаях константное выражение может состоять из целых и/или
символьных констант и операции sizeof.
Для объединения констант в выражения могут использоваться
бинарные операции, унарный минус и тройная операция .
При инициализации внешних или статических переменных может
также использоваться операция взятия адреса ( & ), если она применяется к
предварительно определенным внешним или статическим объектам и
внешним или статическим массивам , индексированным константными
выражениями.
                                      41
3.6. Арифметические                          преобразования
      При выполнении арифметических операций в языке С действуют
следующие правила преобразования типов:
      1) операнды типа char и short преобразуются к типу int, а типа float
— к типу double;
      2) если один из двух операндов имеет тип double, другой операнд
преобразуется к типу double (предполагается, что второй операнд не имеет
тип double) и результат операции будет также типа double;
       3) если один из двух операндов имеет тип long, другой операнд
преобразуется к типу long (предполагается, что он не имеет тип long), и
результат будет также иметь тип long;
       4) если один из операндов имеет тип unsigned, тогда и другой
операнд преобразуется к типу unsigned (предполагается, что он не был
типа unsigned),. и результат также будет иметь тип unsigned;
       5) если не выполнены условия 1 -4, оба операнда должны быть типа
int, и результат имеет тип int.
       Таким образом, значения приводятся к тому типу, который
позволяет представить больший диапазон значений (во избежание
переполнения).
3.7. Константные выражения
      Константным называется выражение, которое всегда дает
единственное значение. В языке С константные выражения требуются: при
инициализации внешних статических переменных; после ключевого слова
case в операторе switch; при определении границ массива. В последних
двух случаях константное выражение может состоять из целых и/или
символьных констант и операции sizeof.
      Для объединения констант в выражения могут использоваться
бинарные операции, унарный минус и тройная операция.
     При инициализации внешних или статических переменных может
также использоваться операция взятия адреса ( & ), если она применяется к
предварительно определенным внешним или статическим объектам и
внешним или статическим массивам, индексированным константными
выражениями.