Componentes de C++
3. Componentes de C++
3.1. Directiva:
Para obtener la documentación más reciente de Visual
Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.
Las directivas de preprocesador, tales como #define y
#ifdef, se utilizan normalmente para hacer que los programas de origen sean más
fáciles de modificar y facilitar la compilación en diferentes entornos de
ejecución. Las directivas del archivo de código fuente indican al preprocesador
que realice acciones específicas. Por ejemplo, el preprocesador puede
reemplazar tokens en el texto, insertar el contenido de otros archivos en el
archivo de código fuente o suprimir la compilación de parte del archivo quitando
secciones de texto. Las líneas de preprocesador se reconocen y se ejecutan
antes de la expansión de macro. Por consiguiente, si una macro se expande en
algo que se parezca a un comando de preprocesador, el preprocesador no
reconocerá ese comando.
Las instrucciones de preprocesador utilizan el mismo
juego de caracteres que las instrucciones del archivo de código fuente, con la
excepción de que no se admiten secuencias de escape. El juego de caracteres
utilizado en las instrucciones de preprocesador es el mismo que el juego de
caracteres de la ejecución. El preprocesador también reconoce valores de
caracteres negativos.
El preprocesador reconoce las siguientes directivas:
El signo de número (#) debe ser el primer carácter que no
sea un carácter de espacio en blanco de la línea que contiene la directiva;
pueden aparecer caracteres de espacio en blanco entre el signo de número y la
primera letra de la directiva. Algunas directivas incluyen argumentos o
valores. Cualquier texto que siga a una directiva (excepto un argumento o un
valor que forme parte de la directiva) debe ir precedido por un delimitador de
comentario de línea única (//) o incluido entre delimitadores de comentario (/*
*/). Las líneas que contienen directivas de preprocesador se pueden continuar precediendo
inmediatamente la marca de fin de línea con una barra diagonal inversa (\).
Las directivas de preprocesador pueden aparecer en
cualquier lugar de un archivo de código fuente, pero solo se aplican al resto
del archivo de código fuente.
3.2.
Declaraciones Globales:
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.
El concepto de entorno global contrasta con el de entorno local donde todas las
variables son locales sin memoria compartida (y por ello todas las iteraciones
pueden restringirse al intercambio de mensajes).
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, en
algunas ocasiones, las variables globales resultan muy útiles. Por ejemplo, se
pueden usar para evitar tener que pasar variables usadas muy frecuentemente de
forma continua entre diferentes subrutinas.
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.
El uso de variables globales dificulta la legibilidad del
código fuente. Dado que en cualquier parte del programa y en todo momento se
puede cambiar el valor de la variable, para entender el uso de la variable
suele ser necesario tener que comprender el funcionamiento de una parte amplia
del programa. También dificultan la separación del código en bibliotecas, ya
que muchos sistemas (como por ejemplo DLL) no soportan la visualización directa
de variables globales en otros módulos.
3.3.
Funciones Main:
Cada programa de C tiene una función principal que se
debe llamar main. Si su código sigue el modelo de programación Unicode, puede
utilizar la versión de carácter ancho de main, wmain. La función main sirve
como punto de partida para la ejecución del programa. Normalmente, controla la
ejecución del programa dirigiendo las llamadas a otras funciones del programa.
Un programa deja de ejecutarse normalmente al final de main, aunque puede
finalizar en otros puntos del programa por distintos motivos. A veces, quizás
cuando se detecta un error, puede resultar conveniente forzar la finalización
de un programa. Para ello, utilice la función exit. Vea la Referencia de la
biblioteca en tiempo de ejecución para obtener información y un ejemplo sobre
cómo usar la función exit.
3.4. Funciones definidas por el usuario:
¿Por qué usarlas?
- · Permiten una programación modular.
- · Puede crear la función una vez, almacenarla en la base de datos y llamarla desde el programa tantas veces como desee. Las funciones definidas por el usuario se pueden modificar, independientemente del código de origen del programa.
- · Permiten una ejecución más rápida.
- · Al igual que los procedimientos almacenados, las funciones definidas por el usuario Transact-SQL reducen el costo de compilación del código Transact-SQL almacenando los planes en la caché y reutilizándolos para ejecuciones repetidas. Esto significa que no es necesario volver a analizar y optimizar la función definida por el usuario con cada uso, lo que permite obtener tiempos de ejecución mucho más rápidos.
- · Las funciones CLR ofrecen una ventaja de rendimiento importante sobre las funciones Transact-SQL para tareas de cálculo, manipulación de cadenas y lógica empresarial. Transact-SQL se adecuan mejor a la lógica intensiva del acceso a datos.
- · Pueden reducir el tráfico de red.
Una operación que filtra datos basándose en restricciones
complejas que no se puede expresar en una sola expresión escalar se puede
expresar como una función. La función se puede invocar en la cláusula WHERE
para reducir el número de filas que se envían al cliente.
Tipos de funciones:
Función escalar:Las funciones escalares definidas por el
usuario devuelven un único valor de datos del tipo definido en la cláusula
RETURNS. En una función escalar insertada no hay cuerpo de la función; el valor
escalar es el resultado de una sola instrucción. Para una función escalar de
varias instrucciones, el cuerpo de la función, definido en un bloque
BEGIN...END, contiene una serie de instrucciones de Transact-SQL que devuelven
el único valor. El tipo devuelto puede ser de cualquier tipo de datos excepto
text, ntext, image, cursory timestamp. Ejemplos.
Funciones con valores de tabla: Las funciones con valores
de tabla definidas por el usuario devuelven un tipo de datos table. Las
funciones insertada con valores de tabla no tienen cuerpo; la tabla es el
conjunto de resultados de una sola instrucción SELECT. Ejemplos.
Funciones del sistema: SQL Server proporciona numerosas
funciones del sistema que se pueden usar para realizar diversas operaciones. No
se pueden modificar. Para obtener más información, vea Funciones integradas
(Transact-SQL), Funciones almacenadas del sistema (Transact-SQL) y Funciones y
vistas de administración dinámica (Transact-SQL)
Comentarios
Publicar un comentario