La déclaration d'un sous-programme comprend l'entête du sous-programme et le corps du sous-programme.
partie déclaration de procédures et de fonctions :
en-tête :
où identificateur de type ne peut pas désigner un type structuré
en PASCAL standard ( Turbo-PASCAL autorise également les types string).
Le mot réservé procedure ou function doit être répété pour chaque
déclaration de procédure ou de fonction (contrairement aux
étiquettes, types et variables).
Tout sousprogramme doit être déclaré avant d'être utilisé. Pour des sousprogrammes mutuellement récursifs, c'estádire pour des programmes qui s'appellent l'un l'autre (cfr Ch 14), il est impossible que la déclaration de chacun d'entre eux apparaisse avant l'appel. Ce problème est résolu par l'usage d'une directive forward (une directive fournit une indication au compilateur).
La déclaration de la procédure est scindée en deux parties : une annonce qui doit apparaître avant le premier appel du sous-programme et la déclaration annoncée. Dans la déclaration annoncée, les paramètres du sousprogramme ne figurent pas; ils apparaissent seulement dans l'annonce.
annonce :
déclaration annoncée :
Exemple
... procedure P1 (x : integer); forward; {annonce} function P2 (y : real) : Boolean; ... begin ... P1(3); ... end; procedure P1; {déclaration annoncée : pas de liste de paramètres} ... var a : real; ... begin ... if P2(a) then ... ... end; ...