Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsii_po_Si_SUA.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
542.21 Кб
Скачать

5.12.Операция определения размера данных

В некоторых случаях совершенно необходимо иметь возможность определять размеры данных, создаваемых пользователем. Это позволяет писать программы, независимые от компьютера, на котором они выполняются, а также упростить процедуру внесения корректировок в программы. Для определения размера данных в языке Си используется операция sizeof. Первая форма операции выглядит следующим образом:

sizeof ( тип )

Результат этой фо

рмы операции - размер данного соответствующего типа в байтах, например, sizeof(float) даст в результате 4.

Вторая форма операции выглядит следующим образом:

sizeof имя_данного

Результат этой формы операции - размер памяти, отведенной под соответствующее данное в байтах, например, после описания массива символов char name[40];, операция sizeof name даст в результате 40.

5.13.Приоритеты операций

Приоритеты и направление рассмотренных выше операций сведены в следующую таблицу. Операции одинакового приоритета объединены в группы, чем выше положение группы в таблице, тем выше приоритет операций группы.

Таблица приоритетов рассмотренных выше операций

Операции одного приоритета

! ~ ++ -- (тип) sizeof

* / %

+ -

<< >>

< <= > >=

== !=

&

^

|

&&

||

= *= /= %= += -= <<= >>= &= ^= |=

6.Понятие о препроцессоре языка Си

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

Ранее была рассмотрена директива include. Вместо нее в исходный текст программы препроцессор вставляет содержимое файла, указанного в директиве.

Так, по директиве #include <stdio.h> в текст программы вставляет содержимое файла stdio.h, находящегося в специальном системном каталоге, а только потом происходит трансляция.

Если в директиве #include имя файла заключено в кавычки, то вставляемый файл вначале ищется по правилам, предусмотренным MSDOS, а только потом в специальном системном каталоге. Например, по директиве препроцессора #include "func.h" будет осуществлена вставка текста из файла func.h, находящегося в текущем каталоге текущего диска.

Директива #define используется для назначения символических имен различным строкам текста. Например, директива:

#define PI 3.14159

осуществляет назначение имени PI строки 3.14159. В дальнейшем, вместо 3.14159 в программе можно использовать имя PI. Вместо него перед трансляцией программы препроцессор подставит соответствующую строку.

В принципе строка может быть сколь угодно сложной.

Пример:

#define TITLE printf("-------sin(x)-------cos(x)-------");

Однако использовать такие конструкции не рекомендуется ввиду сложности отыскания ошибок.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]