Componentes C++
La Directiva
La directiva #if, con las directivas #elif, #else y #endif, controla la compilación de partes de un archivo de código fuente. Si la expresión que se escribe (después de #if) tiene un valor distinto de cero, el grupo de líneas inmediatamente después de la directiva #if se conserva en la unidad de traducción.
La directiva #if, con las directivas #elif, #else y #endif, controla la compilación de partes de un archivo de código fuente. Si la expresión que se escribe (después de #if) tiene un valor distinto de cero, el grupo de líneas inmediatamente después de la directiva #if se conserva en la unidad de traducción.
Gramática
conditional :
conditional :
if-part elif-parts opt else-partopt endif-line
if-part :
if-line text
if-line text
if-line :
#if constant-expression
#if constant-expression
#ifdef identifier
#ifndef identifier
elif-parts :
elif-line text
elif-line text
elif-parts elif-line text
elif-line :
#elif constant-expression
#elif constant-expression
else-part :
else-line text
else-line text
else-line :
#else
endif-line :
#endifCada directiva #if de un archivo de código fuente debe coincidir con una directiva #endif de cierre. Puede aparecer cualquier número de directivas #elif entre las directivas #if y #endif, pero como máximo se permite una directiva #else. La directiva #else, si está presente, debe ser la última directiva antes de #endif.
Las directivas #if, #elif, #else y #endif pueden anidarse en partes de texto de otras directivas #if. Cada directiva #else, #elif o #endifanidada pertenece a la directiva #if anterior más cercana.
Si todas las repeticiones de constant-expression son false o si no aparece ninguna directiva #elif, el preprocesador selecciona el bloque de texto después de la cláusula #else. Si se omite la cláusula #else y todas las instancias de constant-expression en el bloque #if son false, no se selecciona ningún bloque de texto.
constant-expression es una expresión constante entera con estas restricciones adicionales:
- Las expresiones deben tener tipo entero y solo pueden incluir constantes de tipo entero, constantes de caracteres y el operador defined.
- La expresión no puede utilizar sizeof o un operador de conversión de tipo.
- Es posible que el entorno de destino no pueda representar todos los intervalos de enteros.
- La traducción representa el tipo int igual que el tipo long y unsigned int igual que unsigned long.
- El traductor puede traducir constantes de caracteres a un conjunto de valores de código diferentes del conjunto para el entorno de destino. Para determinar las propiedades del entorno de destino, compruebe los valores de las macros de LIMITS.H en una aplicación compilada para el entorno de destino.
- La expresión no debe realizar ninguna consulta de ambiente y debe permanecer aislada de los detalles de implementación del equipo de destino.
Variables Globales
Hasta ahora hemos diferenciado a las variable segun su “tipo” (int, char double, etc), el cual se refería, en última instancia, a la cantidad de bytes que la conformaban. Veremos ahora que hay otra diferenciación de las mismas, de acuerdo a la clase de memoria en la que residen.
Si definimos una variable AFUERA de cualquier función (incluyendo esto a main() ), estaremos frente a lo denominado VARIABLE GLOBAL. Este tipo de variable será ubicada en el segmento de datos de la memoria utilizada por el programa, y existirá todo el tiempo que esté ejecutándose este.
Este tipo de variables son automáticamente inicializadas a CERO cuando el programa comienza a ejecutarse.
Son accesibles a todas las funciones que estén declaradas en el mismo, por lo que cualquiera de ellas podrá actuar sobre el valor de las mismas.
Por ejemplo:
Función Main
Hasta ahora hemos diferenciado a las variable segun su “tipo” (int, char double, etc), el cual se refería, en última instancia, a la cantidad de bytes que la conformaban. Veremos ahora que hay otra diferenciación de las mismas, de acuerdo a la clase de memoria en la que residen.
Si definimos una variable AFUERA de cualquier función (incluyendo esto a main() ), estaremos frente a lo denominado VARIABLE GLOBAL. Este tipo de variable será ubicada en el segmento de datos de la memoria utilizada por el programa, y existirá todo el tiempo que esté ejecutándose este.
Este tipo de variables son automáticamente inicializadas a CERO cuando el programa comienza a ejecutarse.
Son accesibles a todas las funciones que estén declaradas en el mismo, por lo que cualquiera de ellas podrá actuar sobre el valor de las mismas.
Por ejemplo:
#include <stdio.h>
double una_funcion(void);
double variable_global ;
main()
{
double i ;
printf(“%f”, variable_global ); /* se imprimirá 0 */
i = una_funcion() ;
printf(“%f”, i ); /* se imprimirá 1 */
printf(“%f”, variable_global ); /* se imprimirá 1 */
variable_global += 1 ;
printf(“%f”, variable_global ); /* se imprimirá 2 */
return 0 ;
}
double una_funcion(void)
{
return( variable_global += 1) ;
}
La función Main se inicia en el arranque del programa después de la inicialización de los objetos no locales con duración de almacenamiento estático. Es el punto de entrada designado para un programa que se ejecuta en un entorno alojado (es decir, con un sistema operativo).El estándar C ++ requiere que main devuelva int. Como probablemente se conoce, el valor de retorno de la función main es utilizado por la biblioteca de tiempo de ejecución como el código de salida para el proceso. Unix y Win32 admiten el concepto de un entero devuelto de un proceso después de que ha terminado.
Bibliotecas de Funciones
Hay un conjunto de bibliotecas muy especiales, que se incluyen con todos los compiladores de C++. Son las librerías ANSI o estándar.
En C++, se conoce como librerías (o bibliotecas) a cierto tipo de archivos que podemos importar o incluir en nuestro programa. Estos archivos contienen las especificaciones de diferentes funcionalidades ya construidas y utilizables que podremos agregar a nuestro programa, como por ejemplo leer del teclado o mostrar algo por pantalla entre muchas otras más.
Al poder incluir estas librerías con definiciones de diferentes funcionalidades podremos ahorrarnos gran cantidad de cosas, imaginemos por ejemplo que cada vez que necesitemos leer por teclado, debamos entonces crear una función que lo haga (algo realmente complejo), al poder contar con las librerías en C++, podremos hacer uso de una gran variedad de funciones que nos facilitaran la vida y aumentarán la modularidad de nuestros códigos.
Las librerías no son únicamente archivos externos creados por otros, también es posible crear nuestras propias librerías y utilizarlas en nuestros programas. Las librerías pueden tener varias extensiones diferentes, las más comunes son: .lib, .bpl, .a, .dll, .h y algunas más ya no tan comunes.
Hay un conjunto de bibliotecas muy especiales, que se incluyen con todos los compiladores de C++. Son las librerías ANSI o estándar.
En C++, se conoce como librerías (o bibliotecas) a cierto tipo de archivos que podemos importar o incluir en nuestro programa. Estos archivos contienen las especificaciones de diferentes funcionalidades ya construidas y utilizables que podremos agregar a nuestro programa, como por ejemplo leer del teclado o mostrar algo por pantalla entre muchas otras más.
Al poder incluir estas librerías con definiciones de diferentes funcionalidades podremos ahorrarnos gran cantidad de cosas, imaginemos por ejemplo que cada vez que necesitemos leer por teclado, debamos entonces crear una función que lo haga (algo realmente complejo), al poder contar con las librerías en C++, podremos hacer uso de una gran variedad de funciones que nos facilitaran la vida y aumentarán la modularidad de nuestros códigos.
Las librerías no son únicamente archivos externos creados por otros, también es posible crear nuestras propias librerías y utilizarlas en nuestros programas. Las librerías pueden tener varias extensiones diferentes, las más comunes son: .lib, .bpl, .a, .dll, .h y algunas más ya no tan comunes.
Funciones Definidas Por El Usuario
Permiten una programación modular.
Permiten una ejecución más rápida.
Pueden reducir el tráfico de red.
Tipos de funciones
Permiten una ejecución más rápida.
Pueden reducir el tráfico de red.
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, cursor y timestamp.
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.
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