C++/Ключові слова/reinterpret cast

Матеріал з Вікіпідручника
Перейти до навігації Перейти до пошуку

Ключове слово reinterpret_cast використовується для приведення одного типу до іншого побітово. Будь-який вказівний або складний тип може бути приведений до будь-якого іншого за допомогою reinterpret_cast, без перешкод дозволяючи неправомірне використання. Наприклад, за допомогою reinterpret_cast можна, без гарантій безпеки з боку компілятора, привести вказівник на ціле число до вказівника строкового типу. Його використовують для приведення несумісних вказівних типів.

Синтаксис
    TYPE reinterpret_cast<TYPE> (object);

Ключове слово reinterpret_cast<>() використовується для всіх операцій приведення несумісних типів. Частіше за все такий спосіб приведення використовується при перенесенні застосування з одної платформи на іншу.

Не знімає модифікатори const і volatile при приведенні вихідного типу.

Ключове слово reinterpret_cast<T>() змінить тип виразу без зміни бітового представлення даних. це корисно при приведенні вказівників конкретних типів до типу void* а потім для повернення до початкового типу.

Приклад
    int a = 0xffe38024;
    int* b = reinterpret_cast<int*>(a);