Documente Academic
Documente Profesional
Documente Cultură
- Constantes Simblicas
- Arquivos include
- Macros do compilador
- Compilao condicional
- Comandos Definidos pelo Usurio
Constantes Simblicas:
As constantes simblicas so definidas com a diretiva do "pr-processador" #DEFINE. O "prprocessador" procura todas as constantes simblicas definidas por essa diretiva substituindo-as
pelo seu real valor.
Por exemplo:
#DEFINE
#DEFINE
#DEFINE
#DEFINE
FO_READ
FO_WRITE
FO_READWRITE
FO_SHARED
0
1
2
64
[linha
[linha
[linha
[linha
em
em
em
em
branco]
branco]
branco]
branco]
nHandle := FOPEN("Temp.txt", 2 + 64 )
IF FERROR() != 0
ConOut( "Cannot open file, DOS error " , FERROR() )
ENDIF
Max(
MAx(
MAX(
mAX(
a
a
a
a
,
,
,
,
b
b
b
b
)
)
)
)
IIF(
IIF(
IIF(
IIF(
a
a
a
a
>
>
>
>
b
b
b
b
,
,
,
,
a
a
a
a
,
,
,
,
b
b
b
b
)
)
)
)
#DEFINE
#DEFINE
#DEFINE
#DEFINE
...
maX(
max(
MaX(
mAx(
a
a
a
a
,
,
,
,
b
b
b
b
)
)
)
)
IIF(
IIF(
IIF(
IIF(
a
a
a
a
>
>
>
>
b
b
b
b
,
,
,
,
a
a
a
a
,
,
,
,
b
b
b
b
)
)
)
)
:=
:=
:=
:=
Max(
MAx(
MAX(
mAX(
1 , 2 )
4 , 3 )
10 , 20 )
45 , 3 )
nMin := Min( 1 , 2 )
nMin := MIn( 15 , 12 )
nMin := MIN( 1970 , 10 )
nMin := mIN( 3 , 1 )
que sero traduzidas corretamente pelo pr-processador para
nMax
nMax
nMax
nMax
:=
:=
:=
:=
IIF(
IIF(
IIF(
IIF(
1 > 2 , 1 , 2 )
4 > 3 , 4 , 3 )
10 > 20 , 10 , 20 )
45 > 3 , 45 , 3 )
:=
:=
:=
:=
IIF(
IIF(
IIF(
IIF(
1 < 2 , 1 , 2)
15 < 12 , 15 , 12 )
1970 < 10 , 1970 , 10 )
3 < 1 , 3 , 1 )
ou
nMin
nMin
nMin
nMin
Compilao condicional:
O pr-processador trata a compilao condicional incluindo ou excluindo partes do cdigo para
a real compilao de acordo com uma condio. As diretivas para a compilao condicional so:
#IFDEF - Verifica se um smbolo est definido
#IFNDEF - Verifica se um smbolo no est definido
#ELSE - Incluir algo se um #IFDEF ou #IFNDEF "falhar"
#ENDIF - Indica o final da codificao controlada pelas diretivas
#IFDEF, #IFNDEF e #ELSE.
Podemos definir um smbolo sem abrituir um valor a ele. Podemos escrever #DEFINE DEBUG e
test-lo em seguida:
#IFDEF DEBUG
ConOut( "Estou em processo de depurao" )
#ENDIF
Podemos definir simbolos, tambm, partir da IDE do Protheus, nos parmtros para compilao
passando-os da seguinte forma D/DEBUG cria o smbolo DEBUG que poder ser verficado da
mesma forma (um exemplo poder ser obtido em: "Protheus IDE:: Compilao Condicional", ou
ainda em "Sudoku :: Tutorial"). Existem vrios simbolos condicionais definidos no protheus, o
principal e mais usado o TOP, para verificar se o RPO a ser utilizado TOPCONNECT ou no.
#IFDEF TOP
cQuery := "SELECT * FROM " + RetSqlName( "SA1" )
#ENDIF
Essa parte do cdigo s ser incluida na verso definitiva do cdigo a ser compilado se o
smbolo TOP estiver definido.
Vou deixar os comandos definidos pelo usurio para os prximos "posts".