Mis variables están en distintas funciones por lo que hacer el for en el main no me serviría y el caso de un array como dices killerjc quedaría confuso, lo que si podria ser es una struct, pero además de esto intento ahorrar lo máximo de memoria a si que no se si me serviría la estruct.
Leer la EEPROM no significa ningun "gasto" de la misma, por lo tanto la podes leer millones de veces. Grabarla es el problema.
Un struct significaria dejarlo en el espacio global..
Si lo vas a usar un ratito y luego no usarlo mas, entonces lee la eeprom, create una funcion de lectura de eeprom (que sea especifica al micro) y que te devuelva el valor leido. Asi la "lectura" se hace en un solo lugar. Vas a ahorrar espacio de RAM, a costa de tal ves unos 6 ciclos de instruccion mas por cada lectura de la EEPROM (saltos,cargas de registros,etc).
Ya que de hacerlo asi, la varaible quedaria creada en el stack (si lo creas al momento de entrar en una funcion).
Ahora si tu funcion es algo que va a entrar muy muchas veces, y te conviene pasarlo al plano global. Ahorrarías tiempo de ejecución y gastarías un poco mas de RAM. Todo depende de lo que quieras lograr. (Velocidad, espacio, etc). Pero si no te molesta esos pocos ciclos entonces no le veo el problema.
Ademas el PIC18F2550 tiene 2048 bytes de RAM. 160 que serian tus datos son el 7,8% de RAM usada para eso.