Приведение типов

Обзор

Указатели

Метки

Директивы препроцессора

Есть специальные команды, которые не компилируются, а лишь указывают препроцессору на необходимость выполнения некоторых действий. Директивы начинаются с символа #.

#include <имя_файла> - добавить в данное место содержимое файла, файл содержится в специальном каталоге подключаемых файлов;

#include "имя_файла" - тоже, но для файла из текущего каталога.

Примеры стандартных заголовочных файлов (аналоги библиотек в других ЯВУ):

stdio.h – стандартный ввод-вывод;

string.h – работа со строками;

math.h – математические операции;

limits.h – константы предельных значений;

Следующие заголовочные файлы определены только для ОС Ms Dos и консольных приложений Ms Windows

conio.h – консольный ввод-вывод;

mem.h – функции работы с памятью;

dos.h – команды ОС Ms Dos.

#define идентификатор строка_замещения - заменяет все идентификаторы от директивы до конца файла на строку замещения.

#define WIDTH 80#define LENGTH (WIDTH + 10)#define test(f1, f2) (f1 * f2)

#undef идентификатор - отменяет директиву define, после данной директивы замен не производится.

#if, #elif, #else, #endif – организуют ветвление.

#ifdef, #ifndef – далее следующий код будет откомпилирован только если определена / неопределенна макроподстановка.

Идентификатор с последующим двоеточием является меткой. Метка является адресом оператора, следующего за меткой. Используется в операторах switch и goto.

Пример:

int s=0, i=0;

l1: s+=i++;

if (i<100) goto l1;

Переменные хранят данные и не позволяют управлять их размещением в памяти. Единственная доступная операция – взятие адреса (&).

Указатель на переменную хранит адрес размещения данного. Обратиться к данному можно через операцию разыменовывания указателя (*). Объявление указателя осуществляется символом «*» перед именем переменной. Пример:

int x;

int *t; // объявили указатель t на переменную типа int

t = &x; // присваиваем указателю адрес переменной x

*t = 4; // используя указатель, присваиваем x значение 4

Указатели и объекты одного типа могут быть объявлены вместе. Пример (другая раелизация предыдущего примера):

int x,*t=&x;

Константа NULL предназначена для обозначения неинициализированных указателей.

В языке «C» простые типы данных автоматически приводятся к требуемому. Вещественные преобразуются к целым путём отсечения дробной части. Данные большего размера приводятся к данным меньшего размера отбрасыванием старших байт. Для более сложных типов данных, а также для указателей требуется явное преобразование типов. Операция преобразования типа имеет вид:

(новый_тип)переменная

При этом для объектов (экземпляров классов и структур) операция приведения должна быть определена. Для указателей допустимо приведение к другому указателю. Приведение указателей никак не преобразует сами данные.

Примеры приведены далее.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: