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



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


  • Отведение памяти под формальные параметры.
  • Переносимая программа не должна использовать информацию о распределении памяти под формальные параметры, поскольку не только разные компиляторы по-разному решают эту задачу, но даже один компилятор может различным образом отводить память под формальные параметры при различных режимах своей работы.

  • Значение индикатора позиции файла после успешного выполнения функции ungetc для текстового потока до тех пор, пока не будут введены или уничтожены все запомненные символы.
  • Подробности о значении, запоминаемом в случае успешной работы функции fgetpos.
  • Подробности о значении, вырабатываемом для текстового потока в случае успешной работы функции ftell.
  • Порядок и взаимное расположение областей памяти, захватываемых функциями calloc, malloc и realloc.
  • Какой из двух элементов, оказавшихся равными при сравнении, возвращается функцией bsearch.
  • Порядок расстановки в отсортированном функцией qsort массиве двух элементов, оказавшихся равными при сравнении.
  • Структура календарного времени, возвращаемого функцией time.
  • Переносимая программа не использует перечисленную информацию, поскольку она либо различается для разных реализаций языка, либо даже является случайной в рамках одной реализации.

    Неопределенное поведение

    Поведение не определяется для следующих ситуаций:

  • В исходной программе обнаружен символ, не входящий в требуемый набор. Исключение делается для препроцессорных лексем, символьных и строковых констант, а также примечаний.
  • Делается попытка модифицировать строковую константу.
  • Идентификаторы, которые должны обозначать одну и ту же сущность, различаются хотя бы одним символом.
  • В символьной или строковой константе обнаружена неизвестная управляющая последовательность.
  • Лексически первое описание функции или объекта данных с внешней связью не имеет файловой области видимости, а последующее описание лексически идентичного идентификатора имеет либо внутреннюю, либо внешнюю связь, что противоречит первому описанию.
  • Арифметическое преобразование дает результат, который не может быть представлен в отведенном пространстве.



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