ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Классы памяти. Области действия объектовНапомним, что все объекты программы на Си перед их использованием должны быть декларированы. Операционные объекты (в частности переменные) при этом, кроме атрибута «тип», имеют необязательный атрибут «класс памяти», существенно влияющий на область и время их действия. Класс памяти программного объекта определяет время ее существования (время жизни) и область видимости (действия) и может принимать одно из значений: auto, extern, static и register. Класс памяти и область действия объектов по умолчанию зависят от места их размещения в коде программы. Область действия объекта – это часть кода программы, в которой его можно использовать для доступа к связанному с ним участку памяти. В зависимости от области действия переменная может быть локальной (внутренней) или глобальной (внешней). Имеется три основных участка программы, где можно декларировать переменные: – внутри функции (блока); – в заголовке функции при определении параметров; – вне функции. Эти переменные соответственно называются локальными (внутренними) переменными, формальными параметрами и глобальными (внешними) переменными. Область действия локальных данных – от точки декларации до конца функции (блока), в которой произведена их декларация, включая все вложенные блоки. Областью действия глобальных данных считается файл, в котором они определены, от точки описания до его окончания. Если класс памяти у переменной не указан явным образом, он определяется компилятором исходя из контекста ее декларации. Время жизни может быть постоянным – в течение выполнения программы, и временным – в течение выполнения функции (блока) программы. 60 Работа с файлами. Типы файлов (текстовый и бинарный). Дескриптор файла (“указатель на файл”). Режимы работы с файлами. Текстовые файлы Для работы с текстовыми файлами удобнее всего пользоваться функциями fprintf, fscanf, fgets и fputs. Создание текстовых результирующих файлов обычно необходимо для оформления отчетов по лабораторным и курсовым работам. Пример создания текстового файла: #include<stdio.h> void main(void) { FILE *f1; int a=2, b=3; If(!(f1=fopen(“d:\\work\\f_rez.txt”,”w+t”))) { puts(“Файл не создан!”); return; } fprintf(f1,” Файл результатов \n”); fprintf(f1,” %d плюс %d = %d\n”,a,b,a+b); fclose(f1); } Просмотрев содержимое файла, можно убедиться, что данные в нем располагаются точно так, как на экране при использовании функции printf. Бинарные файлы Бинарные (двоичные) файлы обычно используются для организации баз данных, состоящих, как правило, из объектов структурного типа. При чтении-записи бинарных файлов удобнее всего пользоваться функциями, выполняемыми блоковый ввод-вывод fread и fwrite. Рассмотрим наиболее распространенные функции, с помощью которых можно организовать работу с файлами: 1) int fileno (FILE *f) – возвращает значение дескриптора файла f – fd (число, определяющее номер файла); 2) long filelength (int fd) – возвращает длину файла, имеющего номер (дескриптор) fd в байтах; 3) int chsize (int fd, long pos) – выполняет изменение размера файла, имеющего номер fd, признак конца файла устанавливается после байта с номером pos; 4) int fseek (FILE *f, long size, int kod) – выполняет смещение указателя файла f на size байт в направлении признака kod: 0 - от начала файла; 1 - от текущей позиции указателя; 2 - от конца файла; 5) long ftell (FILE *f) – возвращает значение указателя на текущую позицию файла (-1 – ошибка); 6) int feof (FILE *f) – возвращает ненулевое значение при правильной записи признака конца файла; 7) int fgetpos (FILE *f, long *pos) – определяет значение текущей позиции pos файла f, возвращает 0 при успешном завершении.Дескриптор файла в Perl-программе - это имя соединения для ввода-вывода между вашим Perl-процессом и внешним миром. Имена дескрипторов файлов похожи на имена помеченных блоков, но они берутся из другого пространства имен. Как и метки блоков, дескрипторы файлов используются без специального префиксного символа, поэтому их можно спутать с существующими или возможными в будущем зарезервированными словами (для команд, подпрограмм и др.) Режим — это строка, задающая способ дальнейшей обработки файла. Не нашли, что искали? Воспользуйтесь поиском:
|