… Continuação: BlackTDN :: ADVPL ~ Class TFTPClient : Combo III (O Destrinchar Parte 1).
Uma mera formalidade, uma vez que poderia ter criado uma User Function. Ou uma Function U_<f>. User Function f() é traduzida, pelo pré-processador, para u_f(). Lembrando que uma função retorna valor e uma procedure não (demonstrado como compatibilidade histórica) na realidade, no Protheus não existe a distinção entre Função e Procedure (1). Observemos o conteúdo do arquivo de cabeçalho “protheus.ch” Algumas diretivas de tradução para o pré-processador encontradas no arquivo de cabeçalho “protheus.ch”. Dentre elas: #xtranslate USER Function <cNome> => Function U_<cNome> | Para corroborar a afirmativa em (1) observe o seguinte fragmento de código: O espaço de nomes é o mesmo: Seja uma Function ou uma Procedure. Se tentarmos compilar o código ocorrerá a seguinte exceção: Compilando arquivos... c:\temp\xprocname.prw... (no projeto FTPSample) Erro de compilação: XPROCNAME.PRW(5) C2021 Redefinition of function U_XPROCNAME Processo interrompido por erro FATAL de compilação. Compilação finalizada - 1 arquivo(s) - 1 mensagem(s) Tempo de duração da compilação: 3 segundos |
Ao ajustarmos o código. Deixando cada uma com o seu devido nome e executarmos:
Teremos os seguintes resultados: User Function fProcName() | User Procedure pProcName() | u_fProcName() | u_pProcName() | U_FPROCNAME | U_PPROCNAME | |
1: #include "protheus.ch" 2: #xtranslate USER PROCEDURE <p> => PROCEDURE U_<p> 3: User Function fProcName() 4: Return(ProcName()) 5: User Procedure pProcName() 6: Return(ProcName())
| |
Comentários
Postar um comentário