1. PRESENTACIÓN DE LA
ESTRUCTURA DE C++
CORTEZ SOLANO LAURA BIBIANA
GARCÍA VILLANUEVA RAMIRO DE JESÚS
CARRANZA BECERRA MARTÍN DE JESÚS
2. ESTRUCTURA DE UN PROGRAMA
En general, los programas escritos en C++ tienen una
estructura (básica) compuesta por tres secciones:
• Directivas de preprocesador
• declaraciones globales
• declaración de funciones
3. DIRECTIVAS DE PREPROCESADOR
• funciones, y cada biblioteca de funciones tiene asociada un
archivo de definición que se denomina cabecera. Para utilizar algo
de una biblioteca en un programa (por ejemplo, una función), hay
que colocar al principio del programa una directiva de
preprocesamiento seguida de la cabecera de la biblioteca entre
signos de "menor que" y "mayor que" (<>).
4. DIRECTIVA DE PREPROCESADOR:
• la directiva invocada es include y la cabecera iostream, e indican al
preprocesador que debe incluir la librería iostream a nuestro
programa. Cabe señalar que todas las directivas comienzan con el
símbolo numeral #.
5. DENTRO DE LAS DIRECTIVAS DE PREPROCESADOR
SE ENCUENTRAN:
• Macros de preprocesador (#define y #undef)
• Inclusiones condicionales (#ifdef, #ifndef, #if, #endif, #else and #elif)
• Control (#line)
• Error (#error)
• Inclusión de fichero (#include)
• Pragma (#pragma)
• Operaciones de entrada(cin)y salida(cout)
6. MACROS DE PROCESADOR
• Para definir macros de preprocesador, usamos la directiva
#define. La sintaxis es:
Cuando el procesador encuentra esta directiva, este reemplaza todas las
ocurrencias del identificador y son sustituidas por reemplazo. Cuando se
requiere desactivar una macro, a partir de cierta parte del código, se
utiliza la directiva #undef. La sintaxis es:
7. INCLUSIONES CONDICIONALES
• Estas directivas permiten incluir o descartar partes de código, si se cumplen algunas condiciones.
• #ifdef: Permite que una seccion del programa sea compilada solo si la macro especificada como
parametro ha sido definida, sin importar el valor de esta. Por ejemplo:
El ejemplo anterior indica que, si la macro TABLE_SIZE se encuentra definida, entonces
procede a la creación de una matriz de enteros de tamaño TABLE_SIZE.
Cabe señalar que el fin para esta directiva es la directiva #endif
8. #IFNDF: Permite realizar exactamente todo lo contrario a #ifdef. La lineas de
código que se encuentren entre #ifndef y #endif, serán ejecutadas siempre y
cuando la macro señalada como parámetro de #ifndef no se encuentre
definida aun. Por ejemplo:
En el ejemplo anterior, se indica que si la macro TABLE_SIZE no está
definida aún, entonces se define. Cabe señalar que el fin para la
directiva #ifndef es, al igual que #ifdef, #endif
9. • #IF, #ELSE y #ELIF (o ELSE IF ): Estas directivas tienen el mismo
significado que los comandos condicionales de cualquier lenguaje
de programación. Por ejemplo:
uso de todas las directivas condicionales del preprocesador.
10. CONTROL
• Cuando compilamos un programa y un error ocurre durante el proceso de compilación, el compilador muestra
un mensaje de error con las referencias al nombre del archivo donde ocurrió el error y un número de línea, por
lo que es más fácil encontrar el código que genera el error. La directiva #line nos permite controlar ambas
cosas, los números de línea en los archivos de código, así como el nombre del archivo que queremos que
aparece cuando un error ocurre. Su formato es:
Donde número es el nuevo número de línea que se asignará a la siguiente línea de código. Los números de
línea de las líneas sucesivas se incrementarán uno por uno desde este punto en
adelante."nombre_de_archivo" es un parámetro opcional que permite redefinir el nombre del archivo que se
mostrará. Por ejemplo:
Este código generará un error que
se mostrará como un error en el
archivo de "asignación de
variable", línea 20.
11. ERROR
• Esta directiva cancela la compilación cuando es encontrada, generando un error de
compilación que puede ser especificado según un parámetro de un ejercicio. Por
ejemplo:
En el ejemplo anterior, la compilación es cancelada si la macro __cplusplus no está definida
(Esta macro es definida por defecto en todos los los compiladores de C++).
12. INCLUSIÓN DE FICHERO
Cuando el preprocesador encuentra la directiva #include, este reemplaza
todas las ocurrencias de ella por el archivo o cabecera especificada.
Existen dos formas de utilizar #include:
• #include <cabecera>: Es usado para incluir las cabeceras
proporcionadas por defecto, por ejemplo, la librería estándar (string,
iostream, etc.).
• #include "archivo" : Es usado para incluir archivos.
13. PRAGMA
• La directiva #pragma es utilizada para especificar las distintas
opciones del compilador. Estas opciones son especificadas
dependiendo del compilador que se utilice. Si el compilador no
permite un argumento para #pragma, esto es ignorado y no
genera un error de sintaxis.
14. DECLARACIONES GLOBALES
• En esta sección se declaran todas variables y cabeceras de funciones que serán
vistas de manera global, es decir, que su alcance es total en el programa. Por
ejemplo:
En el ejemplo anterior, se definen (ademas de las directivas de preprocesador, vistas en la
sección anterior) una variable y una función. La variable autor podrá ser utilizada por todas
las funciones del programa. Mientras que la función "adicion" solo fue declarada de la
forma "inline". Una función se dice declarada "inline" cuando solo se señala su nombre y
sus tipos de entrada y salida. Su definición completa se reserva para mas adelante.
15. DECLARACIÓN DE FUNCIONES
• La ultima sección del programa es la declaración de funciones. La primera función que se
debe declarar es la función principal o "main". La función main es la mas importante, pues es
la que es invocada cuando el programa se ejecuta. Toda instrucción que no sea declarada
dentro de esta, simplemente no sera considerada. A continuación de la función "main", se
permite la definición completa de las funciones declaradas en la sección de declaraciones
globales. En el siguiente ejemplo, mostraremos la estructura definitiva de un programa y la
declaración completa de sus funciones: