ExpertiDict

C · Avançado · Inglês · Técnico

typeof

/ˈtaɪp.ʌv/operador

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.

Veja também

Todos os termos de C