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

@addWithOverflow em Zig — Referência e Exemplos

@addWithOverflow em Zig O @addWithOverflow realiza uma adição e indica se houve overflow. Retorna uma tupla com o resultado (possivelmente truncado) e um bit de …

Ler mais →
21 Fev 2026 2 min de leitura

@alignCast em Zig — Referência e Exemplos

@alignCast em Zig O @alignCast converte um ponteiro para ter um alinhamento diferente. É necessário quando você precisa converter ponteiros entre tipos com …

Ler mais →
21 Fev 2026 2 min de leitura

@alignOf em Zig — Referência e Exemplos

@alignOf em Zig O @alignOf retorna o alinhamento de memória de um tipo em bytes. O alinhamento determina em quais endereços de memória um valor desse tipo pode …

Ler mais →
21 Fev 2026 3 min de leitura

@as em Zig — Referência e Exemplos

@as em Zig O @as é o builtin de conversão explícita de tipos (type cast) do Zig. Ele permite converter um valor de um tipo para outro de forma segura e …

Ler mais →
21 Fev 2026 2 min de leitura

@bitReverse em Zig — Referência e Exemplos

@bitReverse em Zig O @bitReverse inverte a ordem de todos os bits de um valor inteiro — o bit mais significativo se torna o menos significativo e vice-versa. …

Ler mais →
21 Fev 2026 3 min de leitura

@bitSizeOf em Zig — Referência e Exemplos

@bitSizeOf em Zig O @bitSizeOf retorna o tamanho de um tipo em bits, sem incluir padding de alinhamento. Diferente de @sizeOf, que retorna bytes incluindo …

Ler mais →
21 Fev 2026 2 min de leitura

@byteSwap em Zig — Referência e Exemplos

@byteSwap em Zig O @byteSwap inverte a ordem dos bytes de um valor inteiro. É a operação fundamental para converter entre big-endian e little-endian, essencial …

Ler mais →
21 Fev 2026 2 min de leitura

@call em Zig — Referência e Exemplos

@call em Zig O @call invoca uma função com controle avançado sobre como a chamada é realizada. Permite forçar inlining, prevenir tail calls, controlar …

Ler mais →
21 Fev 2026 2 min de leitura

@cImport em Zig — Referência e Exemplos

@cImport / @cInclude em Zig O @cImport importa cabeçalhos C diretamente para Zig, permitindo chamar funções C sem escrever bindings manuais. Dentro do bloco …

Ler mais →
21 Fev 2026 2 min de leitura

@clz em Zig — Referência e Exemplos

@clz em Zig O @clz (Count Leading Zeros) conta o número de bits zero consecutivos a partir do bit mais significativo (esquerda) de um valor inteiro. É uma …

Ler mais →
21 Fev 2026 3 min de leitura

@compileError em Zig — Referência e Exemplos

@compileError em Zig O @compileError gera um erro de compilação com uma mensagem personalizada. É usado principalmente em código genérico e metaprogramação para …

Ler mais →
21 Fev 2026 3 min de leitura

@compileLog em Zig — Referência e Exemplos

@compileLog em Zig O @compileLog imprime valores em tempo de compilação, permitindo depurar código comptime. Quando presente no código, o compilador exibe os …

Ler mais →
Página 1 de 4 Próxima →

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.