C · Avançado · Inglês · Técnico
typeof
Operador padronizado no C23 que obtém o tipo de uma expressão para declarar variáveis do mesmo tipo. Antes era extensão do gcc e do clang, escrita __typeof__.
Onde usar
Útil em macros genéricas como max e swap, que precisam declarar temporários sem saber o tipo dos argumentos. Ajuda a evitar avaliar a expressão duas vezes.
Em código
#define SWAP(a, b) do { \
typeof(a) t_ = (a); \
(a) = (b); \
(b) = t_; \
} while (0)Exemplos
Use typeof in the macro to declare a temporary of the same type.
Use typeof na macro para declarar um temporário do mesmo tipo.
It only works in C17 as __typeof__, as a GCC extension.
No C17 só funciona como __typeof__, uma extensão do GCC.
Cuidado
Usar typeof em código que precisa compilar com padrões anteriores ao C23 sem a extensão; nesses casos prefira __typeof__.
Sinônimos
__typeof__
Origem
De type of, tipo de.