Четвертый BORLAND С++ и его окружение

       

Использование ключевого слова void.


Тип void был введен в системы программирования Си в Начале 80-х

годов. Он является стандартным согласно ANSI Си.

В предыдущем разделе мы рассмотрели два случая использования

ключевого слова void: первый - для обозначения пустого списка аргументов, второй - для указания типа функции, не возвращающей какое-либо значение. Рассмотрим еще два способа применения ключевого слова

void: в качестве преобразователя типов и как часть определения указателя.

В первом случае компилятор получает информацию о необходимости и

проигнорировать какое-либо выражение:

//Простейший случай использования ключевого слова void

Более интересным является второй случай, когда void* используется как родовой указатель, т.е. может указывать на объекты любого типа. Однако его значение не может быть присвоено какому-либо другому

указателю, так как компилятор не знает размер объекта на который ссылается void*. Рассмотрим несколько примеров:

void *gp; //родовой указатель

int *ip; // указатель на int

char *cp; // указатель на char

gp=ip; // корректное преобразование

ip=gp; // -"-

cp=ip // некорректное преобразование

*ip=15; // корректное присваивание

*ip=*gp; // некорректное присваивание

Одним из основных способов применения этого типа являются применения этого типа являются формальные параметры. Функция из стандартной библиотеки memcpy, например, определена в string.h как:

void*memcpy(voidf*s1, const void*s2, unsigned int n);

Она копирует n символов из объекта, на который ссылается s2 в

объект, на который указывает s1. Таким образом она работает с объектами любого типа.



Содержание раздела