ciao a tutti
ho un esercizio da svolgere e non riesco a capirne la logica.
so come funziona una pila, so come e' strutturata eccetera ma avendo imparato la programmazione java (cioe' ad oggetti) non riesco a implementare su C una pila, non riesco cioe' a capire la logica in cui dovrei scrivere i file .h e i file .c, dove e come scrivere i prototipi, le variabili static ecc.

il testo dell'esercizio e' questo (se qualcuno ha buon cuore e puo' darmi una mano a capire come strutturare un programma "semicomplesso" )

Strutturazione di un programma

Si vuole realizzare una piccola libreria per eseguire operazioni su uno stack di interi. Lo stack può essere implementato come un array di interi di lunghezza fissata (ma si usi una costante simbolica definita con #define per indicare questa lunghezza).

Si crei un file stack.c contenente le definizioni delle strutture dati necessarie (suggerimento: servirà almeno un array per memorizzare gli elementi, nonché un modo per sapere quanti elementi sono contenuti nello stack, o un puntatore alla sua testa) e un file stackop.c contenente le definizioni delle seguenti funzioni:

* int push(int) impila un intero nello stack; restituisce 0 se l'operazione è andata a buon fine, oppure -1 in caso di errori (per esempio, non c'è spazio nello stack);
* int pop() toglie l'elemento in cima allo stack e lo restituisce al chiamante; ritorna 0 se lo stack è vuoto;
* int peek() restituisce l'elemento in cima allo stack senza eliminarlo dallo stack; ritorna 0 se lo stack è vuoto;
* int size() restituisce il numero di elementi presenti al momento nello stack;
* int empty() restituisce TRUE se lo stack è vuoto, FALSE altrimenti.

Si abbia cura di definire anche dei file .h contenenti le dichiarazioni e i prototipi corrispondenti ai file .c di cui sopra.

Infine, si scriva un file main.c contenente (ovviamente) una funzione main() che, dopo aver incluso i .h che si sono definiti e quelli di sistema eventualmente necessari, effettui alcune operazioni sullo stack, stampando i risultati e verificando che tutto funzioni come atteso.
e un'altra domanda: una variabile e' intesa come globale se viene dichiarata all'inzio del file o se viene dichiarata in un .h?

grazie a tutti!