2. LAS INSTRUCCIONES DE C++ SON LOS ELEMENTOS DE
PROGRAMA QUE CONTROLAN CÓMO Y EN QUÉ ORDEN SE
MANIPULAN LOS OBJETOS. ESTA SECCIÓN INCLUYE:
INFORMACIÓN GENERAL
INSTRUCCIONES CON ETIQUETA
3. Información general sobre las instrucciones de C++
se ejecutan secuencialmente, excepto
cuando una instrucción de expresión, una
instrucción de selección, una instrucción
de iteración o una instrucción de salto
modifica específicamente esa secuencia.
4. CATEGORÍAS DE INSTRUCCIONES
INSTRUCCIONES DE EXPRESIÓN. ESTAS INSTRUCCIONES EVALÚAN
UNA EXPRESIÓN PARA VER SUS EFECTOS SECUNDARIOS O PARA
AVERIGUAR SU VALOR DEVUELTO.
INSTRUCCIONES NULL. ESTAS INSTRUCCIONES SE PUEDEN
PROPORCIONAR CUANDO LA SINTAXIS DE C++ REQUIERE UNA
INSTRUCCIÓN PERO NO SE VA A REALIZAR NINGUNA ACCIÓN.
INSTRUCCIONES COMPUESTAS. ESTAS INSTRUCCIONES SON GRUPOS
DE INSTRUCCIONES ENTRE LLAVES ({}). SE PUEDEN UTILIZAR DONDE
SE PUEDE UTILIZAR UNA SOLA INSTRUCCIÓN.
5. • Instrucciones de selección. Estas instrucciones realizan una prueba; a
continuación, ejecutan una sección de código si la prueba se evalúa como true
(distinto de cero). Pueden ejecutar otra sección de código si la prueba se evalúa
como false.
• Instrucciones de iteración. Estas instrucciones ejecutan repetidamente un
bloque de código hasta que se cumple un criterio de finalización especificado.
• Instrucciones de salto. Estas instrucciones transfieren el control
inmediatamente a otra ubicación de la función o devuelven el control de la
función.
• Instrucciones de declaración. Las declaraciones introducen un nombre en un
programa. (En Declaraciones se proporciona información más detallada sobre
las declaraciones).
6. ARCHIVO DE CABECERA
• Se denomina header file, al español fichero/archivo
(de) cabecera, o include file, al español fichero de
inclusión, en ciencias de computación,
especialmente en el ámbito de los lenguajes de
programación C y C++, al archivo, normalmente en
forma de código fuente,que el compilador incluye
de forma automática al procesar algún otro archivo
fuente.
7. Motivación:
En la mayoría de lenguajes de programación modernos, los
programadores pueden dividir los programas en
componentes de menor tamaño (como pueden ser clases y
subrutinas) y distribuir esos componentes entre muchas
unidades por traducir (típicamente en forma de archivos), que
el sistema puede compilar de forma autónoma. Si una
subrutina se tiene que usar al margen de la unidad por
traducir donde ha sido definida, se tiene que introducir el
concepto de declaración directa o prototipos de funciones.
Por ejemplo, una función definida así en un archivo fuente:
8. • int add(int a, int b)
• {
• return a + b;
• }
Puede declararse (con un prototipo de función) y ser referida desde un
segundo archivo fuente como sigue:
• int add(int, int);
•
• int triple(int x)
• {
• return add(x, add(x, x));
• }
9. Para entender una violación ODR, considérese el siguiente código
(correcto):
/* File print-heading.c */
#include <stdio.h>
void print_heading(void)
{
printf("standard headingn");
}
/* File main.c */
void print_heading(void);
int main(void)
{
print_heading();
return 0;
}
10. La unidad por traducir representada por el archivo fuente main.c
referencia a la función print_heading() que está definida en otra
unidad por traducir (print-heading.c). De acuerdo con las reglas de
C99, los programadores deben declarar una función externa antes
del primer uso. Para cumplir con este requisito el archivo main.c
declara la función en la primera línea. Esta versión del código
funciona de forma correcta.
Posteriormente, el programador que mantiene el archivo fuente
print-heading.c puede decidir hacer la función más flexible y dar
soporte a cabeceras a gusto del usuario. Una posible
implementación podría ser la siguiente:
12. Alternativas
Los header files no son la única solución al problema de
acceder identificadores declarados en diferentes archivos.
Tienen la desventaja de que los programadores siguen
teniendo que realizar cambios en dos sitios diferentes (en el
archivo fuente y en el header file) cuando se realiza un
cambio en una definición. Algunos lenguajes más jóvenes
(como Java) prescinden de los header files y usan, en su
lugar, un esquema de nombres que permite al compilador
localizar los archivos fuente asociados con
implementaciones de clases e interfaces (pero, al hacerlo,
se restringe la libertad a la hora de nombrar archivos).
13. Una variable global es, en informática,
una variable accesible en todos los ámbitos de
un programa informático. Los mecanismos de
interacción con variables globales se denominan
mecanismos de entorno global.
14. Las variables globales se usan de forma
frecuente para pasar información entre
diferentes secciones del código que no
comparten una relación de "función
llamadora" - "función llamada", como ocurre
con hilos concurrentes y módulos para el
manejo de señales