Question 2.9

Come e' implementato il passagio e la restituzione di strutture?


Quando una struttura e` passata come argumento a una funzione, l'intera struttura e` tipicamente spinta sullo stack, usando tante parole quante richieste. (Alternativamente, i programmatori spesso scelgono di usare puntatori a strutture, precisamente per evitare questo spreco.) Alcuni compilatori passano semplicemente un puntatore alla struttura, sebbene possano dovere fare una copia locale per preservare la semantica di passaggio-per-valore.

Le strutture sono spesso restituite da funzioni in una locazione puntata da un argomento ``nascosto'' extra, fornito dal compilatore alla funzione. Qualche vecchio compilatore usava una locazione speciale, statica per la restituzione di strutture, sebbene cio` rendesse le funzioni che restituiscono strutture non-rientranti, che e` proibito dall' ANSI C.

Riferimenti: ANSI Sez. 2.2.3
ISO Sez. 5.2.3


Leggere di seguito: prev prossima su cima


Questa pagina e` di Steve Summit // Copyright 1995 // mail feedback