преобразования Type-Cast

Для явного преобразования типов можно использовать приведение типов.

Синтаксис

cast-expression:
unary-expression
( type-name ) cast-expression

type-name:
specifier-qualifier-list abstract-declarator выбирать

Тип type-name и cast-expression является значением для преобразования в этот тип. Выражение с приведением типов не является l-значением. Преобразуется cast-expression , как если бы он был назначен переменной типа type-name. Правила преобразования назначений (описанные в преобразованиях назначений) применяются также к приведениям типов. В следующей таблице показаны типы, которые можно привести к любому заданному типу.

Типы назначения Потенциальные источники
Целочисленные типы Любой целочисленный тип или тип с плавающей запятой или указатель на объект
Плавающая точка Любой арифметический тип
Указатель на объект или void * Любой целочисленный тип, void *указатель на объект или указатель функции
Указатель функции Любой целочисленный тип, указатель на объект или указатель функции
Структура, объединение или массив Отсутствует
Тип «void» Любой тип

Любой идентификатор можно привести к типу void . Однако если тип, указанный в выражении приведения типов, не voidявляется, то идентификатор, приводимый к такому типу, не может быть выражением void . Любое выражение может быть приведение voidк, но выражение типа void не может быть приведение к другому типу. Например, функция с void типом возвращаемого значения не может привести к другому типу.

Выражение void * имеет указатель voidтипа на , а не тип void. Если объект имеет void тип, результирующее выражение не может быть назначено любому элементу. Аналогичным образом объект типа-приведения не является допустимым l-значением, поэтому назначение не может быть сделано для объекта типа приведения.

Специфично для Microsoft

Приведение типа может быть выражением l-value, если размер идентификатора не изменяется. Сведения о выражениях l-value см. в разделе "L-Value" и "R-Value Expressions".

Конец раздела, относящегося к Microsoft

Выражение можно преобразовать в тип void с помощью приведения, но результирующее выражение можно использовать только в том случае, если значение не требуется. Указатель объекта, преобразованный в void * исходный тип и обратно, возвращается к исходному значению.

См. также

Преобразования типов