Passaggio dei parametri

I linguaggi di alto livello passano i parametri a un'API per valore, direttamente, per valore, indirettamente o per riferimento.

A seconda del linguaggio di alto livello utilizzato, i parametri possono essere passati nei seguenti modi:

Per valore, direttamente

Il valore dell'oggetto dati viene inserito direttamente nell'elenco dei parametri.

Per valore, indirettamente

Il valore dell'oggetto dati viene copiato in un percorso temporaneo. L'indirizzo della copia (un puntatore) viene inserito nell'elenco dei parametri. Per valore, indirettamente non viene fatto esplicitamente dal programmatore dell'applicazione. Viene eseguita dal linguaggio di alto livello al runtime.

per riferimento

Un puntatore all'oggetto dati viene inserito nell'elenco dei parametri. Le modifiche apportate dall'API richiamata al parametro si riflettono nell'applicazione chiamante.

Quando richiami un'API, il protocollo per il passaggio dei parametri è di solito quello di passare un puntatore di spazio che punta alle informazioni trasmesse. (Questo è anche indicato come pass - by - reference.) Questa è la convenzione utilizzata per impostazione predefinita per i compilatori CL, RPG e COBOL. L'attenzione deve essere utilizzata nei linguaggi che supportano il valore pass - by (come ILE C) per garantire che queste convenzioni vengano rispettate. Fare riferimento alla documentazione della lingua appropriata per istruzioni. La convenzione di passaggio del parametro pass - by - reference può essere utilizzata in tutti i linguaggi di programmazione. Alcune delle API di tipo UNIX richiedono il passaggio del parametro pass - by - value. VisualAge® C++ per IBM i supporta anche il passaggio di parametri pass - by - value.

La semantica di alto livello di solito determina quando i dati vengono passati per valore e quando vengono passati per riferimento. Ad esempio, ILE C passa e accetta i parametri in base al valore, direttamente, mentre per OPM e ILE COBOL e OPM e ILE RPG i parametri vengono generalmente passati per riferimento. È necessario assicurarsi che il programma o la procedura chiamante trasmetta i parametri nel modo previsto dall'API richiamata. Le guide del programmatore OPM o ILE HLL contengono ulteriori informazioni sul passaggio di parametri a linguaggi differenti.

I linguaggi ILE supportano i seguenti stili di passaggio parametri:

  • ILE C passa e accetta i parametri per valore (direttamente e indirettamente) e per riferimento.
  • ILE COBOL supporta la trasmissione di parametri per valore (direttamente e indirettamente) e per riferimento.
  • ILE RPG supporta il passaggio di parametri per valore (direttamente e indirettamente) e per riferimento.
  • ILE CL supporta il passaggio dei parametri per valore (direttamente) e per riferimento.