Si, se scrivi le dichiarazioni prima del main, è possibile mettere le definizioni dopo.

Riguardo alla domanda iniziale... dipende da quanto è grosso il tuo programma, e cosa deve fare. Del resto, se sei riuscito a scrivere tutte le funzioni su un solo file, probabilmente è un programma piccolo... Io starei sul semplice, variabili globali.

Certo, se conti di espanderlo fino ad usare parecchie funzioni o più di un file, allora ti conviene passare i dati per riferimento.

(Io la vedo così... finchè non arriva MItaly/oregon/piùomenochiunquealtro a dimostrarmi il contrario :P )