Pular para o conteúdo
ZigLang Brasil
  • Início
  • Tutoriais
  • Artigos
  • Sobre o Zig
  • Glossário
  • Receitas
  • Referência
  • Comunidade
  1. Início
  2. Funções Builtin do Zig — Referência Completa em Português

Funções Builtin do Zig — Referência Completa em Português

Funções Builtin do Zig — Referência Completa

As funções builtin do Zig são operações especiais fornecidas diretamente pelo compilador. Diferente de funções comuns da biblioteca padrão, os builtins são resolvidos em tempo de compilação ou mapeados diretamente para instruções de máquina otimizadas. Eles são identificados pelo prefixo @ e não podem ser redefinidos pelo programador.

Por que usar builtins?

Os builtins existem por motivos fundamentais na filosofia do Zig:

  • Desempenho: Mapeiam diretamente para instruções de CPU ou são resolvidos em tempo de compilação, sem overhead de chamada de função.
  • Segurança: Fornecem operações seguras onde a linguagem C dependeria de comportamento indefinido (como aritmética com overflow).
  • Metaprogramação: Permitem introspecção de tipos e geração de código em tempo de compilação.
  • Interoperabilidade: Facilitam a integração com código C existente.

Categorias de Builtins

Operações de Tipo

Builtins para conversão, introspecção e manipulação de tipos.

BuiltinDescrição
@importImporta módulos e pacotes
@typeInfoObtém informações detalhadas sobre um tipo
@typeNameRetorna o nome de um tipo como string
@TypeOfObtém o tipo de uma expressão
@asConversão explícita de tipos
@intFromPtrConverte ponteiro para inteiro
@ptrFromIntConverte inteiro para ponteiro
@intFromFloatConverte float para inteiro
@floatFromIntConverte inteiro para float
@intFromEnumObtém valor inteiro de um enum
@enumFromIntCria enum a partir de inteiro
@intFromBoolConverte booleano para inteiro
@errorNameObtém nome de um erro como string
@tagNameObtém nome do campo ativo de uma union
@alignOfRetorna o alinhamento de um tipo
@sizeOfRetorna o tamanho em bytes de um tipo
@bitSizeOfRetorna o tamanho em bits de um tipo

Comptime e Metaprogramação

Builtins para operações em tempo de compilação e reflexão.

BuiltinDescrição
@compileErrorGera erro de compilação com mensagem personalizada
@compileLogImprime valores em tempo de compilação para depuração
@fieldAcessa campo de struct por nome em tempo de compilação
@hasFieldVerifica se um tipo possui determinado campo
@hasDeclVerifica se um tipo possui determinada declaração
@embedFileIncorpora arquivo no binário em tempo de compilação
@srcObtém informações sobre localização no código-fonte

Operações de Memória

Builtins para manipulação e conversão de ponteiros e memória.

BuiltinDescrição
@memsetPreenche região de memória com valor
@memcpyCopia bloco de memória
@ptrCastConversão entre tipos de ponteiro
@alignCastConverte alinhamento de ponteiro
@constCastRemove qualificador const de ponteiro
@volatileCastRemove qualificador volatile de ponteiro

Matemática e Operações Bit a Bit

Builtins para aritmética segura e manipulação de bits.

BuiltinDescrição
@addWithOverflowAdição com detecção de overflow
@subWithOverflowSubtração com detecção de overflow
@mulWithOverflowMultiplicação com detecção de overflow
@shlExactShift left exato (sem perda de bits)
@shrExactShift right exato (sem perda de bits)
@minRetorna o menor de dois valores
@maxRetorna o maior de dois valores
@clzConta zeros à esquerda (leading zeros)
@ctzConta zeros à direita (trailing zeros)
@popCountConta bits em 1 (population count)
@byteSwapInverte a ordem dos bytes
@bitReverseInverte a ordem dos bits

Outros Builtins

BuiltinDescrição
@panicEncerra execução com mensagem de pânico
@cImport / @cIncludeImporta cabeçalhos C para uso em Zig
@callChama função com controle avançado de invocação

Como usar esta referência

Cada página de builtin contém:

  1. Assinatura de sintaxe — A forma completa de chamar o builtin
  2. Descrição — Explicação detalhada do que o builtin faz
  3. Parâmetros — Descrição de cada parâmetro aceito
  4. Valor de retorno — O que o builtin retorna
  5. Exemplos práticos — Código funcional demonstrando uso real
  6. Casos de uso comuns — Cenários onde o builtin é mais útil
  7. Builtins relacionados — Links para builtins complementares

Convenções de nomenclatura

O Zig segue convenções consistentes na nomenclatura dos builtins:

  • camelCase: Todos os builtins usam camelCase (ex: @intFromFloat)
  • Direção de conversão: Conversões seguem o padrão @destinoFromOrigem (ex: @intFromFloat converte float para int)
  • Prefixo @: Todos os builtins começam com @ para distingui-los de funções comuns
  • TypeOf com T maiúsculo: @TypeOf usa T maiúsculo pois retorna um tipo (que em Zig é um valor de primeira classe em comptime)

Compatibilidade

Esta referência é baseada no Zig 0.13.x e versões recentes do compilador. Alguns builtins podem ter comportamento diferente em versões anteriores. Consulte sempre a documentação oficial para detalhes específicos da versão que você está utilizando.

Tutoriais relacionados

  • Introdução ao Zig
  • Sistema de tipos do Zig
  • Metaprogramação com comptime
  • Interoperabilidade com C
  • Gerenciamento de memória
21 Fev 2026 2 min de leitura

@shrExact em Zig — Referência e Exemplos

@shrExact em Zig O @shrExact realiza um shift right (deslocamento à direita) e garante que nenhum bit significativo é perdido (descartado pela parte inferior). …

Ler mais →
21 Fev 2026 3 min de leitura

@sizeOf em Zig — Referência e Exemplos

@sizeOf em Zig O @sizeOf retorna o tamanho de armazenamento de um tipo em bytes, incluindo qualquer padding de alinhamento. É o equivalente do sizeof do C, mas …

Ler mais →
21 Fev 2026 2 min de leitura

@src em Zig — Referência e Exemplos

@src em Zig O @src retorna uma struct com informações sobre a localização no código-fonte onde ele é invocado — incluindo o nome do arquivo, número da linha e …

Ler mais →
21 Fev 2026 2 min de leitura

@subWithOverflow em Zig — Referência e Exemplos

@subWithOverflow em Zig O @subWithOverflow realiza uma subtração e indica se houve overflow (ou underflow). Retorna uma tupla com o resultado (possivelmente …

Ler mais →
21 Fev 2026 3 min de leitura

@tagName em Zig — Referência e Exemplos

@tagName em Zig O @tagName retorna o nome do campo ativo de uma tagged union ou o nome de uma variante de enum como string. É fundamental para serialização, …

Ler mais →
21 Fev 2026 3 min de leitura

@typeInfo em Zig — Referência e Exemplos

@typeInfo em Zig O @typeInfo é um dos builtins mais poderosos do Zig para metaprogramação. Ele permite inspecionar qualquer tipo em tempo de compilação, …

Ler mais →
21 Fev 2026 3 min de leitura

@typeName em Zig — Referência e Exemplos

@typeName em Zig O @typeName é um builtin que retorna o nome de qualquer tipo como uma string legível. É extremamente útil para depuração, logging e geração de …

Ler mais →
21 Fev 2026 3 min de leitura

@TypeOf em Zig — Referência e Exemplos

@TypeOf em Zig O @TypeOf é um builtin que deduz e retorna o tipo de qualquer expressão em tempo de compilação. É o equivalente ao decltype do C++ ou ao typeof …

Ler mais →
21 Fev 2026 2 min de leitura

@volatileCast em Zig — Referência e Exemplos

@volatileCast em Zig O @volatileCast remove o qualificador volatile de um ponteiro. Ponteiros volatile indicam que a memória apontada pode ser modificada …

Ler mais →
← Anterior Página 4 de 4

ZigLang Brasil

Comunidade brasileira dedicada à linguagem de programação Zig. Tutoriais, artigos e recursos em português.

Navegação

  • Início
  • Tutoriais
  • Artigos
  • Sobre o Zig
  • Glossário
  • Receitas
  • Referência
  • Comunidade

Comunidade

  • GitHub do Zig
  • Discord
  • Comunidade Brasil
  • Site Oficial (EN)
  • Documentação

Nossa Rede de Sites

Outros recursos para desenvolvedores brasileiros:

  • 🦞 OpenClaw — Ferramentas de IA
  • Go Golang Brasil — Tutoriais de Go
  • Rs Rust Brasil — Tutoriais de Rust
  • AI Eupresa IA — IA para Empresas

© 2026 ZigLang Brasil. Conteúdo sob licença CC BY-SA 4.0.

Zig é uma linguagem de programação mantida pela Zig Software Foundation.