Язык программирования Си



         

Приложение C. Перечень изменений - часть 3


  • Перечисление - новый тип, которого не было в первой редакции.
  • Стандарт заимствует из C++ способ записи квалификатора типа, в частности квалификатора const (A8.2).
  • Вводится запрет на модификацию строк: это значит, что их разрешается размещать в памяти, доступной только на чтение (ПЗУ).
  • Изменены "обычные арифметические преобразования"; по существу, выполнен переход от принципа "для целых всегда превалирует unsigned; для плавающей точки всегда используется double" к принципу "повышение до минимального достаточно вместительного типа" (см. A6.5).
  • Отменены старые операторы присваивания вроде =+. Каждый оператор присваивания теперь представляется одной отдельной лексемой. В первом издании оператор присваивания мог изображаться парой символов, возможно, разделенных символами-разделителями.
  • Компиляторам более не разрешается трактовать математическую ассоциативность операторов как вычислительную ассоциативность.
  • Введен унарный оператор + для симметрии с унарным -.
  • Разрешено использовать указатель на функцию в качестве ее именующего выражения без явного оператора * (см. A7.3.2).
  • Структурами разрешено оперировать при присваиваниях, можно передавать структуры в качестве аргументов функциям и получать их в качестве результата от функций.
  • Разрешено применять оператор получения адреса & к массиву; результатом является указатель на массив.
  • В первой редакции результат операции sizeof имел тип int; во многих реализациях он заменен на unsigned. Стандарт официально объявляет его зависимым от реализации, но требует, чтобы он был определен в заголовочном файле <stddef.h> под именем size_t. Аналогичное изменение было сделано в отношении типа разности указателей) который теперь выступает под именем ptrdiff_t (см. A7.4.8 и A7.7).
  • Запрещено применять оператор получения адреса & к объекту типа register даже тогда, когда данный компилятор не располагает его на регистре.
  • Типом результата операции сдвига является тип ее левого операнда; тип правого операнда на повышение типа результата влияния не оказывает (см. A7.8).



  • Содержание  Назад  Вперед