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


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


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

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

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

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

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

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



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



      Книжный магазин