L'uso di variabili globali è altamente sconsigliato (anche nella maggior parte di libri che trratano il C).
Ciò non toglie che tu possa usarle.
In ogni caso non ha senso leggerle per salvarle in un'altro file!
codice:
typedef struct data_s {
  unsigned short giorno, mese, anno;
  double kilometri;
  unsigned short ore, minuti, secondi;
  unsigned calorie;
  shorti metri, secondo;
  shorti minuti, kilometro;
} data_t;

typedef struct lista_s {
 data_t data;
 struct lista_s *next;
} lista_t;

typedef lista_t *lista;
//oppure un semplice array di elementi data_t
Puoi usare questa la struttura data_t o modificarla a tuo piacimento, magari immagazinando i dati facendo uso di una lista, ma puoi benissimo usare gli array...