te pongo un pequeño ejemplillo que te explicara algunas ventajas de las funciones hay muchas mas cosas y es un tema muy extenso pero te expli tres de los casos mas usuales para el uso de las funciones:
void funcion_1(void)
{
//aqui haces lo que quieras
}
int funcion_2(void)
{
int variable1;
variable1= 20 /5;
return variable1;
}
int funcion_3 (int x)
{
int variable1;
variable1= x * 3;
return variable1;
}
void main (void)
{
int valor,resultado; //declaracion devariables
funcion_1();
valor = funcion _ 2();
resutado = funcion _ 3 (20);
}
en este ejmplo, desde la funcion pricipal (main) mandas llamar la funcion "funcion1" lo de void significa que no regreara ningun valor y el void dentro del parentesis significa que no recivira algun valor, en esta funcion haces lo que quieras al terminar de hacerlo regresa a seguir donde se quedo el programa en este caso la linea "valor = funcion _ 2();" bueno este es otro caso vas a asignar el valor que te regrese la funcion "funcion_2" si te fijas ya la declaramos como "int funcion_2" lo que significa que devolvera un valor tipo "int", asi que dentro de la funion he creado una variable llamada "variable1" luego hago una operacion 20/5, al poner return dice que al volver al main le retornara el valor de "variable1" en este caso un 4, por lo tanto en el main la variable valor valdra 4, y seguira en el programa con la linea "resutado = funcion _ 3 (20);" y aqui por ultimo te explico que hace esta funcion: si te fijas dentro del parentesis puse el numero 20, este es un valor cualquiera del tipo int (0 a 255 en el caso del compilador CCS) y debe ser del tipo int por que si te fijas tambien declare en la funcion_3 dentro del parentesis: "int x" bueno lo que haces es que le cargas 20 a funcion 3, la cual se lo asignara a la variable local de dicha funcion llamada x y dentro de esta funcion trabajara con este valor al meno que lo cambies, entonces hace la operacion "x * 3" es decir 20 * 3 asi y se lo asigna a "variable1" que es la que se devuelve al regresar a el main, por lo tanto en el main la variable "resltado" valdra 60.
espero que te sirva de algo esta pequeña explicacion y como te dijo "migsantiago" estudia un manual por que hay muchas mas cosas interesantes en este lenguaje como con el uso de los punteros en las funciones etc etc, a por cierto como dice Suky aunque puedes usar el goto en el lenguaje C, te recomiendo que no lo hagas, la verdad se ve mal y se sale un poco del sistema de programacion en C, pero eso es cuetion de gustos.
Saludos