Código principal de un programa


El código principal de un programa, es el que inicia la ejecución del mismo. Si se opta por la declaración clásica ha de estar al final del programa declarando antes procesos, variables globales, etc...

En los nombres y las palabras reservadas diferencian entre mayúsculas y minúsculas, por lo que NO son válidas MAIN_program_cdivmain_program_cdiv, Main_program_cdiv, ...


- Declaración clásica:
MAIN_PROGRAM_CDIV

BEGIN_PROGRAM
    sentencia ;
    ...
END_PROGRAM

El código del programa principal comienza con la palabra reservada BEGIN_PROGRAM, tras la cual puede aparecer cualquier número de sentencias, y finaliza con la palabra reservada END_PROGRAM.


Igualmente también se puede declarar al estilo de un proceso, pero requerirá después llamar a RUN_PROGRAM_CDIV, aunque no exactamente después, ya que entre END y RUN_PROGRAM_CDIV se pueden declara procesos, funciones, variables, etc..:

- Declaración al estilo de un proceso:
MAIN_PROGRAM_CDIV

BEGIN
    sentencia ;
    ...
END

RUN_PROGRAM_CDIV

En cualquiera de los dos casos se controla el proceso principal del programa, que es el encargado de inicializar el programa.


int opcion; // Opción elegida en el menú.

// ...                   // Declaración de los procesos del programa.

MAIN_PROGRAM_CDIV

PRIVATE
 int dato; // Declaración de datos privados

BEGIN_PROGRAM           // Inicio del código principal.

    set_mode(m640x480); // Inicialización.
    set_fps(24, 0);
    // ...              // Carga ficheros, sonidos, etc.

    do{                 // Inicio bucle principal.

        opcion=0;       // Bucle de control del menú de opciones.
        //...           // Inicializa el menú de opciones.
        do{
            // ...
            if (key(_enter)) opcion=1;  // Se elige jugar.
            if (key(_esc)) opcion=2;    // Se elige finalizar.
            FRAME;
        }while (opcion == 0);

        if (opcion==1){  // Si se ha elegido la opción de jugar.

            // Inicializa regiones, scroll, etc.
            // Crea los procesos de juego.
            // Bucle de control del juego, espera a que finalice.
        }

    }while (opcion!=2); // Final del bucle principal.

    let_me_alone();     // Finaliza todos los procesos.

END_PROGRAM             // Final del código principal.

Que finalice la ejecución del código principal no implica que finalice la ejecución del programa, pues ésta continuará si quedan procesos vivos; si se quiere forzar la terminación del programa cuando finalice este código, se puede utilizar, por ejemplo, la función let_me_alone() justo antes del END_PROGRAM que marca el final del código principal, para eliminar al resto de procesos que puedan quedar vivos.

También se puede finalizar en cualquier punto del programa su ejecución mediante la función cdiv_exit() que automáticamente eliminará todos los procesos y recursos cargados saliendo de CDIV.

Nota: En un proceso principal también se pueden declarar datos públicos por medio de la sentencia PUBLIC o privados por medio de la sentencia PRIVATE, los datos globales han de declararse al principio del programa.


Ver: Sintaxis