par Jeff Yanoviak - Mis en ligne le 20/07/2005 - Publié en Novembre 2004
Excepté les îles Galapagos, peu de choses démontrent autant la diversité de
l'évolution que les techniques de coding rencontrées en visitant des sites en
Europe. La boîtes à outils de programmation de l'iSeries offre pléthore d'outils
nous permettant de réaliser le même travail de plusieurs manières, plus ou
moins élégantes.
Depuis l'origine d'ILE, les pointeurs de procédure nous accompagnent. Ils
sont un peu comme le mouton noir de la famille : on ne les voit pas souvent.
C'est dommage car ils ont beaucoup à offrir sur le plan de la dynamique et de
la souplesse ...Cet article donne un exemple pratique d'utilisation des pointeurs de procédure.
Il contient aussi des éléments applicables dans de plus grandes applications.
Mon exemple présente les pointeurs de procédure, démontre leur
souplesse et stocke nettement tout le code de touches de fonction dans un
bloc de code visible, accessible, facile à
maintenir, à la fin du module. De sorte que
les procédures n'encombrent pas le corps
du module principal.
Externaliser les touches de fonctions
Que ceux d’entre vous qui ne sont pas familiarisés
avec les pointeurs sachent qu’ils
les utilisent pourtant depuis longtemps.
Quand on définit un champ,
on définit en réalité un pointeur : statique
certes, mais pointeur quand même. Quand le programme s’exécute, le système
alloue le stockage chargé de contenir la définition du champ et associe
l’adresse de l’emplacement du stockage au nom du champ.
Un pointeur est une variable dynamique qui peut contenir toute adresse de
stockage choisie pendant l’exécution. Un pointeur de procédure est un
pointeur qui contient l’adresse d’une procédure exécutable (c’est-à -dire un
programme, la procédure principale d’un module, ou l’une de ses sous-procédures) qui est liée au programme en
cours d’exécution.
Si vous définissez Field_A comme un
champ alphabétique de 11 octets initialisé à
« Hello World », il y a quelque part dans le
stockage un emplacement contenant
« Hello World ». Si vous voulez le trouver,
vous pouvez utiliser la fonction intégrée
%Addr (obtenir l’adresse de la variable)
pour l’extraire :
Eval Ptr = %Addr(Field_A)
Si vous voulez déterminer l’emplacement
d’une procédure nommée Proc_A qui
affiche « Hello World », vous pouvez utiliser
la fonction intégrée %PAddr (obtenir
l’adresse de procédure) :
Eval Ptr = %PAddr('Proc_A')
Il existe une différence entre les pointeurs et les pointeurs
de procédure : s’il est vrai que vous n’avez pas besoin
de définir les variables pointeur dans le code, vous devez définir
les pointeurs de procédure comme type procptr – c’est
un champ de 16 octets indiqué par un astérisque
(*) dans la colonne 40 de votre carte
D.
roc (provenant de l’exemple ci-dessus) se
présenterait ainsi :
D Proc S * procptr inz(*null)
Téléchargez cette ressource
Microsoft 365 Tenant Resilience
Face aux failles de résilience des tenants M365 (configurations, privilèges, sauvegarde). Découvrez 5 piliers pour durcir, segmenter et surveiller vos environnements afin de limiter l’impact des attaques. Prioriser vos chantiers cyber et améliorer la résilience de vos tenants Microsoft 365.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Le trilemme de la souveraineté : le coût caché du cloud qui freine l’IA en Europe
- Moderniser le développement logiciel : de la fragmentation à l’intégration
- Semperis : gouverner l’identité à l’ère des agents IA
- Analyse Patch Tuesday Mars 2026
Articles les + lus
Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
Moderniser le développement logiciel : de la fragmentation à l’intégration
Analyse Patch Tuesday Mars 2026
Une nouvelle ère de la modernisation du mainframe
Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
À la une de la chaîne Tech
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
- Moderniser le développement logiciel : de la fragmentation à l’intégration
- Analyse Patch Tuesday Mars 2026
- Une nouvelle ère de la modernisation du mainframe
- Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
