Справочная система C guide



Содержание


if (islower(c)) /* правильно */

Библиотечная функция islower (см с 67) определена в библи отеке стандартных функций ввода-вывода и является машин но-зависимой Поскольку ее спецификация мобильна, то данная функция обеспечивает мобильную проверку символов Учтите, что разные символьные коды могут отличаться по числу входящих в них символов Не используйте разность значений двух букв для вычисления лексикографического расстояния между ними

Не используйте программные трюки, зависящие от аппаратуры.

Любое повышение эффективности выполнения программы, достигаемое за счет знания особенностей конкретной ЭВМ, обычно не оправдывает связанную с этим потерю мобильности

14.4. Хорошо организованные программы

Программа называется хорошо организованной, если ее легко читать, модифицировать, эксплуатировать и, следовательно, переносить на другие ЭВМ

Все определения, связанные с конкретной операционной средой и конкретной ЭВМ, помещайте в файл заголовка.

Важнейшим средством разработки мобильных программ являются команды препроцессора #mclude и #define (см с 52) Помещайте все определения типов данных, поименованных констант, макроопределения, используемые более чем одной программой, в единый файл заголовка так, чтобы все возможные изменения были локализованы Пр им ер

#mclude <values h>

86 Мобильность программ на языке Си

С помощью этой команды в программу включается стандартный файл заголовка /usr/include/values.h, который содержит аппаратные константы.

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

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

Не помещайте в файлы заголовка определения внешних переменных, которые управляют распределением памяти. Используйте файлы заголовка только для определения команд препроцессора и типов данных.




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