Centro Educativo
Santo Domingo
Informática
Lenguaje C++
Profa. Guadalupe Espinosa
XI° A
18 de abril de 2017
Las directivas:
El preprocesador de
C++ es el preprocesador para el lenguaje de programación C. Es el primer
programa invocado por el compilador y procesa directivas como #include, #define
y #if. Estas directivas no son espec´ıficas de C. En realidad pueden ser usadas
con cualquier tipo de archivo.
Las
siguientes directivas del preprocesador de lenguaje C se encuentran
disponibles:
|
|
Estas
directivas son las siguientes: #define, #elif, #else, #endif, #error, #if,
#ifdef, #ifndef, #include, #message y #undef.
|
|
Sintaxis
|
|
#define
label text
|
#elif
condition
|
#else
|
#endif
|
#error
"message"
|
#if
condition
|
#ifdef
label
|
#ifndef
label
|
#include
{"filename" | <filename>}
|
#message
"message"
|
#undef
label
|
Declaraciones Globales:
El uso de
este tipo de variables suele considerarse como una mala práctica, por el riesgo
que conlleva esa deslocalización: una variable global puede ser modificada en
cualquier parte del programa (a menos que resida en una sección de memoria protegida) y cualquier parte del programa depende de ella. Es por ello que una
variable global tiene un potencial ilimitado para crear dependencias, factor
éste que aumenta la complejidad. Sin embargo,
El uso de
variables globales se desaconseja especialmente para lenguajes de programación funcionales (como puede ser Scheme). Viola la transparencia referencial y dificulta la legibilidad del código fuente.
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. Los lenguajes de programación donde cada archivo define un espacio de nombres
implícito eliminan la mayor parte de los problemas de los lenguajes con nombres
de espacios globales, aunque pueda haber algunos problemas si no se tiene
cuidado a la hora de encapsular el código. Sin las restricciones adecuadas (como por ejemplo con un mutex),
el código que usa variables globales no será a prueba de hilos excepto para los valores de sólo
lectura en la memoria protegida.
#include <iostream>
int global = 3; // Esta es la variable global.
void ChangeGlobal()
{
global = 5; // Se referencia la variable global en una función.
}
int main()
{
std::cout << global << '\n'; // Se referencia la variable global en una segunda función.
ChangeGlobal();
std::cout << global << '\n';
return 0;
}
Dado que la
variable es de ámbito global, no hay necesidad de pasarla como parámetro a
otras funciones. La variable global pertenece a todas las funciones del
programa.
El resultado
será:
3
5
Función Main
Durante la fase de enlazado
de la compilación, el "linker" añade a cualquier programa C++
un módulo especial, de inicio,
que es realmente el punto de entrada a la ejecución del programa. Este módulo
realiza diversas tareas preparatorias a la ejecución propiamente dicha. Por
ejemplo, iniciar todas las variables estáticas o globales y realizar
determinadas verificaciones del hardware. Finalmente pasa el control a una
función que debe responder al nombre de main y le pasa algunos argumentos en base a
datos que ha recibido a su vez del Sistema Operativo; esta es la razón por la
que todos los programas C++ deben contener una función con este nombre . Así
pues, main representa el punto de la ejecución a
partir del cual el programador toma el control de la ejecución, antes de esto
ya han sucedido muchas cosas en nuestro programa. A su vez el punto de
finalización de esta función, su punto de retorno (return) significa el
fin del programa , pero recuerde que existe otra forma de terminar el programa,
que puede ser utilizada desde cualquier punto (sin necesidad de volver a la
función main), consiste en
utilizar la función exit de la Librería Estándar.
El programa de ejemplo tiene
una definición de función y es donde realmente empieza la ejecución:
int main() // la función main()
{
…
…
return 0;
}
{
…
…
return 0;
}
La definición de la función
está compuesta por la cabecera de la función y por el cuerpo de la función, en
este caso:
int main() // la función
main()
es la cabecera de la función
define el nombre de la función main()y el tipo de dato devuelto por la función
(int).
El cuerpo de la función es el conjunto de sentencias que están encerradas entre llaves ({}) y que siguen a la cabecera de la función.
Cada instrucción de C++ se denomina sentencia y termina con un punto y coma. La sentencia return actúa como terminación de la función.
El cuerpo de la función es el conjunto de sentencias que están encerradas entre llaves ({}) y que siguen a la cabecera de la función.
Cada instrucción de C++ se denomina sentencia y termina con un punto y coma. La sentencia return actúa como terminación de la función.
Funciones Definidas por el Usuario
Las funciones de usuario son, como su nombre
indica, las que el propio usuario declara, de igual manera que declara
procedimientos. Las funciones nacen con el propósito de ser subprogramas que
siempre tienen que devolver algún valor.
- Las funciones siempre devuelven un valor al programa
que las invocó.
- Para llamar a un procedimiento se escribe su
nombre en el cuerpo del programa, y si los necesita, se incluyen los
parámetros entre paréntesis. Para invocar una función es necesario hacerlo
en una expresión.
Las funciones de usuario vienen definidas por
un nombre, seguidas de dos paréntesis () entre
los que puede haber o no argumentos. Los argumentos son valores que se le pasan
a la función cuando se llama.
Un ejemplo de una función sin argumentos:
#include <stdio.h>
main ()
{
printf (“\nEste mensaje lo muestra la función
main()”);
MiFuncion ();
}
/* Definición de la función MiFuncion() */
MiFuncion ()
{
printf (“\nEste otro lo muestra MiFuncion()”);
}
No hay comentarios:
Publicar un comentario