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

@constCast em Zig — Referência e Exemplos

@constCast em Zig O @constCast remove o qualificador const de um ponteiro, transformando um *const T em *T. Esta operação é necessária em cenários de …

Ler mais →
21 Fev 2026 2 min de leitura

@ctz em Zig — Referência e Exemplos

@ctz em Zig O @ctz (Count Trailing Zeros) conta o número de bits zero consecutivos a partir do bit menos significativo (direita) de um valor inteiro. Mapeia …

Ler mais →
21 Fev 2026 2 min de leitura

@embedFile em Zig — Referência e Exemplos

@embedFile em Zig O @embedFile incorpora o conteúdo de um arquivo diretamente no binário compilado, em tempo de compilação. Retorna um ponteiro para um array de …

Ler mais →
21 Fev 2026 3 min de leitura

@enumFromInt em Zig — Referência e Exemplos

@enumFromInt em Zig O @enumFromInt cria um valor enum a partir de um valor inteiro. É a operação inversa de @intFromEnum. Este builtin é especialmente útil ao …

Ler mais →
21 Fev 2026 3 min de leitura

@errorName em Zig — Referência e Exemplos

@errorName em Zig O @errorName retorna o nome de um valor de erro como uma string legível. É uma ferramenta essencial para depuração, logging e mensagens de …

Ler mais →
21 Fev 2026 3 min de leitura

@field em Zig — Referência e Exemplos

@field em Zig O @field permite acessar campos de structs, unions e enums usando um nome de campo determinado em tempo de compilação (comptime). Isso é …

Ler mais →
21 Fev 2026 3 min de leitura

@floatFromInt em Zig — Referência e Exemplos

@floatFromInt em Zig O @floatFromInt converte um valor inteiro para um tipo de ponto flutuante. É a operação inversa de @intFromFloat. Essa conversão é …

Ler mais →
21 Fev 2026 2 min de leitura

@hasDecl em Zig — Referência e Exemplos

@hasDecl em Zig O @hasDecl verifica em tempo de compilação se um tipo (geralmente um struct, enum ou union) possui uma declaração específica — seja uma função, …

Ler mais →
21 Fev 2026 3 min de leitura

@hasField em Zig — Referência e Exemplos

@hasField em Zig O @hasField verifica se um tipo (struct, union ou enum) possui um campo com o nome especificado. Retorna true ou false em tempo de compilação. …

Ler mais →
21 Fev 2026 3 min de leitura

@import em Zig — Referência e Exemplos

@import em Zig O @import é o builtin mais utilizado em Zig. Ele é responsável por importar módulos, pacotes externos e a biblioteca padrão para o escopo atual …

Ler mais →
21 Fev 2026 3 min de leitura

@intFromBool em Zig — Referência e Exemplos

@intFromBool em Zig O @intFromBool converte um valor booleano para um inteiro: true torna-se 1 e false torna-se 0. Em Zig, não há conversão implícita entre bool …

Ler mais →
21 Fev 2026 3 min de leitura

@intFromEnum em Zig — Referência e Exemplos

@intFromEnum em Zig O @intFromEnum extrai o valor inteiro subjacente (tag value) de um valor enum. Todo enum em Zig possui internamente um tipo inteiro que …

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