Операционная система UNIX


Особенности мобильного программирования на языке Си - часть 7


  • Значение объекта присваивается перекрывающемуся по памяти объекту.
  • Делается попытка изменить объект, описанный как константа, с помощью указателя на тип, в котором нет атрибута const.
  • Объект, описанный с атрибутом volatile, указывается с помощью указателя на тип, не имеющего такого же атрибута.
  • Описания объекта, имеющего внешнюю связь, в двух разных файлах или в разных областях видимости одного файла, дают этому объекту разные типы.
  • Значение автоматического неинициированного объекта используется до первого присваивания.
  • Используется результат работы функции, которая, однако, не возвращает никакого значения.
  • Функция, обрабатывающая переменное число параметров, определяется без списка типов параметров в эллиптической нотации.
  • Фактический параметр макровызова не имеет ни одной препроцессорной лексемы.
  • Внутри списка параметров макровызова имеются препроцессорные лексемы, которые могут быть проинтерпретированы как директивы препроцессора.
  • В результате выполнения препроцессорной операции слияния лексем (##) получается неверная препроцессорная лексема.
  • Эффект, возникающий в программе при переопределении зарезервированного внешнего идентификатора.
  • Параметр identifier в макровызове offset соответствует битовому полю записи.
  • Фактический параметр библиотечной функции имеет неверное значение, если только поведение этой функции в подобном случае не описано явно.
  • Библиотечная функция, обрабатывающая переменное число параметров, не описана.
  • Для доступа к настоящей функции assert использована макродиректива #undef.
  • Фактический параметр функции, обрабатывающей символы, выходит за область определения.
  • Вызов функции setjmp производится в ином контексте, нежели при сравнении с целочисленным выражением из констант в переключателе или в условном операторе.
  • Значение автоматического объекта, не имеющего атрибута volatile, изменилось между вызовами setjmp и longjmp.
  • Функция longjmp вызывается из динамически вложенной программы обработки сигнала.
  • Сигнал возникает не в результате работы функций abort или raise, а при обработке сигнала вызывается библиотечная функция, не являющаяся самой функцией signal, или со статическим объектом проделывается не присваивание ему значения статической переменной с атрибутом volatile типа sig_atomic_t.



  • - Начало -  - Назад -  - Вперед -