Оператор typeof
в простом C (не C ++) является дополнением GCC к стандарту.Он сообщает компилятору, что вы хотите использовать тип выражения, заключенный в круглые скобки.
Используя typeof
, как указано выше, вы можете объявить переменные неизвестных вам или в этом контексте типов, используя тип другой переменной в качестве ссылки,Его также можно использовать для приведения.
Операция +
внутри typeof
имеет своеобразный эффект.typeof((c) + 1)
означает "тип c или тип 1, какой бы ни оставался после повышения" .Помните, что, например, символы преобразуются в целые, когда они используются в операциях, в которых используются целые числа, целые числа преобразуются в числа с плавающей запятой, числа с плавающей запятой в двойные числа и т. Д.* будет переведен в int
для выполнения операции.
Обратите внимание, что это может решить только компилятор: typeof
не оценивает, не имеет значения, во время выполнения ничего не происходит.
Полное описание typeof
можно найти здесь .