Amigos, de lo poco que he aprendido en el mundo de la programación de los uC pic, he reconocido que hay que diferenciar los compiladores para micros, de los compiladores para ordenadores. No podemos por ejemplo hacer semejanzas con C++. tengo entendido el que plus plus significa estar orientado al objeto. Cosa que es hasta la fecha es imposible de implementar en los pics (por la limitación de los recursos)
yo en mi paso con el ccs ( y muy poquisimo con C18 y hitech) me he dado cuenta que programar en C es un avance significativo en cuanto a agilizar la programación en ensamblador, pero nada mas, igual hay que activar un pin o encender un modulo de forma como se hace en asm, nosotros escribimos una linea de C y el compilador escribe unas cuantas en asm, no podemos olvidarnos de los registros ni las banderas de las interrupciones.
por supuesto que no olvido el RTOS (aunque sigo viendo muy pocos programas escritos en rtos)
pajaro, la forma para devolver mas de un valor en una función es con puntero. Creo que tu pregunta tiene relación con el otro tema IF - valida funciones con paso de parametros proteus - ccs
pienso que si ves que el programa se te está complicando mucho, mejor uses variables globales.