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 3 min de leitura

@intFromFloat em Zig — Referência e Exemplos

@intFromFloat em Zig O @intFromFloat converte um valor de ponto flutuante para um tipo inteiro, truncando a parte fracionária. Diferente de conversões …

Ler mais →
21 Fev 2026 3 min de leitura

@intFromPtr em Zig — Referência e Exemplos

@intFromPtr em Zig O @intFromPtr converte um ponteiro para seu valor numérico de endereço de memória, representado como um usize. Esse builtin é essencial para …

Ler mais →
21 Fev 2026 2 min de leitura

@max em Zig — Referência e Exemplos

@max em Zig O @max retorna o maior de dois valores. Funciona com inteiros, floats e valores comptime. Se os dois valores forem conhecidos em comptime, o …

Ler mais →
21 Fev 2026 2 min de leitura

@memcpy em Zig — Referência e Exemplos

@memcpy em Zig O @memcpy copia dados de um slice de origem para um slice de destino. Os slices devem ter o mesmo comprimento e não devem se sobrepor na memória. …

Ler mais →
21 Fev 2026 2 min de leitura

@memset em Zig — Referência e Exemplos

@memset em Zig O @memset preenche uma região de memória (slice) com um valor específico. É a forma idiomática em Zig de inicializar buffers, zerar memória ou …

Ler mais →
21 Fev 2026 2 min de leitura

@min em Zig — Referência e Exemplos

@min em Zig O @min retorna o menor de dois valores. Funciona com inteiros, floats e valores comptime. Se os dois valores forem conhecidos em comptime, o …

Ler mais →
21 Fev 2026 2 min de leitura

@mulWithOverflow em Zig — Referência e Exemplos

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

Ler mais →
21 Fev 2026 2 min de leitura

@panic em Zig — Referência e Exemplos

@panic em Zig O @panic encerra a execução do programa imediatamente com uma mensagem de erro e, em modo debug, um stack trace. É usado para situações …

Ler mais →
21 Fev 2026 2 min de leitura

@popCount em Zig — Referência e Exemplos

@popCount em Zig O @popCount (Population Count) conta o número de bits com valor 1 em um inteiro. Também conhecido como “Hamming weight”. Mapeia …

Ler mais →
21 Fev 2026 2 min de leitura

@ptrCast em Zig — Referência e Exemplos

@ptrCast em Zig O @ptrCast converte um ponteiro de um tipo para outro. É a forma principal de reinterpretar dados na memória através de ponteiros com tipos …

Ler mais →
21 Fev 2026 3 min de leitura

@ptrFromInt em Zig — Referência e Exemplos

@ptrFromInt em Zig O @ptrFromInt converte um valor inteiro (usize) para um ponteiro tipado. É a operação inversa de @intFromPtr. Este builtin é essencial para …

Ler mais →
21 Fev 2026 2 min de leitura

@shlExact em Zig — Referência e Exemplos

@shlExact em Zig O @shlExact realiza um shift left (deslocamento à esquerda) e garante que nenhum bit significativo é perdido (descartado pelo topo). Se algum …

Ler mais →
← Anterior Página 3 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.