Тип void - студопедія

Тип void (порожній) синтаксично поводиться як основний тип. Однак використовувати його можна тільки як частина похідного типу, об'єктів типу void не існує. Він використовується для того, щоб вказати, що функція не повертає значення, або як базовий тип для покажчиків на об'єкти невідомого типу.

void f () // f не повертає значення void * pv; // покажчик на об'єкт невідомого типу

Змінної типу void * можна привласнювати покажчик будь-якого типу. На перший погляд це може здатися не особливо корисним, оскільки void * не можна разименовать, але саме це обмеження і робить тип void * корисним. Головним чином, він застосовується для передачі покажчиків функцій, які не дозволяють зробити припущення про тип об'єкта, і для повернення з функцій нетипізований об'єктів. Щоб використовувати такий об'єкт, необхідно застосувати явне перетворення типу. Подібні функції зазвичай знаходяться на найнижчому рівні системи, там, де здійснюється робота з основними апаратними ресурсами. наприклад:

int * pi; char ** cpp; // покажчик на покажчик на char int (* vp) [10]; // покажчик на вектор з 10 int'ов int (* fp) (char, char *); // покажчик на функцію // одержує параметри (char, char *) // і повертає int

Змінна, на яку вказує p, - це c1, а значення, яке зберігається в c1, це 'a', тому що привласнюється c2 значення * p є 'a'.

Над покажчиками можна здійснювати деякі арифметичні дії. Ось, наприклад, функція, підраховує число символів в рядку (не рахуючи завершального 0):

Дуже корисними можуть виявитися покажчики на функції; вони обговорюються в # 4.6.7.

Схожі статті