#defineDefine identificadores, constantes manifestas ou pseudofunções substituídas pelo pré-processador.
AdvPL Guia#define · #undef · #include · #ifdef · #ifndef · #else · #endif · #command · #translateControle o pré-processamento, compartilhe definições e escolha quais trechos serão enviados ao compilador.
Diretivas são instruções executadas pelo pré-processador antes da compilação. Uma analogia útil é preparar uma receita antes de levá-la ao forno: o pré-processador inclui cabeçalhos, expande símbolos, traduz sintaxe e escolhe blocos; o compilador recebe apenas o resultado dessas decisões. Para quem conhece C/C++, #define e #include têm origem conceitual semelhante, mas não se deve equiparar #include a sistemas modernos completos de módulos.
#define · #undef · #include · #ifdef · #ifndef · #else · #endif · #command · #translate#defineDefine identificadores, constantes manifestas ou pseudofunções substituídas pelo pré-processador.
#undefRemove uma definição ativa a partir do ponto onde a diretiva aparece.
#includeInsere no ponto atual o conteúdo de um arquivo de cabeçalho localizado no caminho de includes da compilação.
#ifdefInclui um trecho na compilação somente quando determinado identificador estiver definido.
#ifndefInclui um trecho somente quando determinado identificador ainda não estiver definido.
#else e #endifDefine o caminho alternativo e encerra blocos de compilação condicional.
#command e #translateCria regras de transformação sintática aplicadas pelo pré-processador.
#define LIMITE_ITENS 100
#define LOG_DETALHADO
User Function ExDiretivas()
Local nItens := 120
#ifdef LOG_DETALHADO
ConOut("Itens recebidos: " + CValToChar(nItens))
#endif
If nItens > LIMITE_ITENS
MsgAlert("Limite excedido")
EndIf
ReturnOs símbolos são resolvidos antes da compilação; o If continua sendo uma decisão em execução.
#ifndef TAMANHO_LOTE
#define TAMANHO_LOTE 50
#endif
User Function ExLote()
ConOut("Tamanho do lote: " + CValToChar(TAMANHO_LOTE))
ReturnO valor padrão é usado somente quando o símbolo não foi definido anteriormente.
#include "TOTVS.ch"
#include "FWMVCDef.ch"
User Function ExCabecalhos()
// Utilize símbolos do Framework MVC somente após incluir
// o cabeçalho compatível com o ambiente.
ReturnO conteúdo dos cabeçalhos participa do pré-processamento do fonte.
© 2026 Usina.BR. Todos os direitos reservados. TOTVS, Protheus, Microsiga e seus respectivos logotipos são marcas de seus titulares. O AdvPL Guia é independente e utiliza citações limitadas, atribuídas e justificadas por finalidade educativa. Consulte os Termos de Uso. Termos de Uso