Usina BRGuía AdvPL
Ingresar
← Todos los temas
DIRECTIVAPublicado

#define

#define <identificador> [<texto de substituição>]

Define identificadores, constantes manifiestas o pseudofunciones expandidas por el preprocesador.

Pré-processadorConstantesPseudofunçõesCompilação
01 · DESCRIPCIÓN GENERAL

Descripción general

#define asocia un identificador sensible a mayúsculas y minúsculas con un texto de sustitución. La expansión ocurre antes de compilar y no crea una variable en ejecución. También puede definir un símbolo sin valor para #ifdef y #ifndef.

02 · SINTAXIS

Sintaxis

#define <identificador> [<texto de substituição>]
03 · EJEMPLO PRÁCTICO

Constantes manifiestas

#define MAX_PRODUCTOS 150
#define MENSAJE_ERROR "Operación no válida para este usuario."

User Function ExDefine()
    Local nCantidad := 151

    If nCantidad > MAX_PRODUCTOS
        MsgStop(MENSAJE_ERROR, "Validación")
    EndIf
Return
Resultado esperado

Los identificadores se sustituyen antes de la compilación y no son variables de ejecución.

04 · EJEMPLO PRÁCTICO

Pseudofunción

#define AREA(nBase, nAltura) (nBase * nAltura)

User Function ExArea()
    Local nResultado := AREA(10, 12)

    ConOut(CValToChar(nResultado))
Return
Resultado esperado

El preprocesador expande AREA(10, 12) en su expresión.

BUENAS PRÁCTICAS
  • Usa nombres en mayúsculas por convención.
  • #define puede crear una constante manifiesta, un símbolo de control o una pseudofunción.
  • Encierra las expresiones de pseudofunción entre paréntesis.
  • La definición es visible desde su declaración en la unidad procesada.
ERRORES COMUNES
  • La sustitución es textual y una pseudofunción insegura puede repetir efectos secundarios.
  • No ocultes lógica compleja en #define; usa una función real cuando importen la depuración o los tipos.
  • Los identificadores distinguen mayúsculas y minúsculas.

Contenido relacionado

REFERENCIAS
  1. TOTVS. #define. TDN. Última alteração em 22 mar. 2019.
  2. TOTVS. Diretivas para o compilador. TDN.
  3. TOTVS. #ifdef. TDN.
  4. TOTVS. #ifndef. TDN.
  5. TOTVS. #include. TDN.
  6. TOTVS. #undef. TDN.
Estado
Publicado
Página creada el
Última revisión el
Idioma original
Portugués
Revisión
Usina.BR