C soporta el calificador de tipo variable const. Especifica que el valor de una variable no se puede modificar durante el programa. Cualquier intento de modificar el valor de la variable definida con const producirá un mensaje de error.
VARIABLES
En C una variable es una posición con nombre en memoria donde se almacena un valor de un cierto tipo de dato. Las variables pueden almacenar todo tipo de datos: cadenas, números y estructuras. Una constante, por el contrario, es una variable cuyo valor no puede ser modificado. Una variable típicamente tiene un nombre (un identificador) que describe su propósito. Toda variable utilizada en un programa debe ser declarada previamente. La definición en C debe situarse al principio del bloque, antes de toda sentencia ejecutable. Una definición reserva un espacio de almacenamiento en memoria. El procedimiento para definir (crear) una variable es escribir el tipo de dato, el identificador o nombre de la variable y, en ocasiones, el valor inicial que tomará. Por ejemplo,
char Respuesta;
Significa que se reserva espacio en memoria para Respuesta, en este caso, un carácter ocupa un solo byte. El nombre de una variable ha de ser un identificador válido. Es frecuente, en la actualidad, utilizar subrayados en los nombres, bien al principio o en su interior, con objeto de obtener mayor legibilidad y una correspondencia mayor con el elemento del mundo real que representa.
salario dias-de-semana edad-alumno – fax
Declaración
Una declaración de una variable es una sentencia que proporciona información de la variable al compilador C. Su sintaxis es:
t i p o variable
Tipo es el nombre de un tipo de dato conocido por el C
Variable es un identificador (nombre) válido en C.
Inicialización de variables
En algunos programas anteriores, se ha proporcionado un valor denominado valor inicial, a una variable cuando se declara. El formato general de una declaración de inicialización es:
tipo nombre-varíabl e = expresión
expresión es cualquier expresión válida cuyo valor es del mismo tipo que tipo.
Nota: Esta sentencia declara y proporciona un valor inicial a una variable.
Las variables se pueden inicializar a la vez que se declaran, o bien, inicializarse después de la declaración. El primer método es probablemente el mejor en la mayoría de los casos, ya que combina la definición de la variable con la asignación de su valor inicial.
char respuesta = 'S';
int contador = 1;
float peso = 156.45;
int anyo = 1993;
Estas acciones crean variables respuesta, contador, peso y anyo, que almacenan en memoria los valores respectivos situados a su derecha.
Existen en C distintos tipos de datos, cada uno de los cuales se puede encontrar representado de forma diferente en la memoria de la computadora. A continuación se presenta una lista de los tipos de datos básicos. También se dan los requerimientos de memora típicos.
Tipo de datos | Descripción | Requerimiento típico de memoria |
int | Cantidad entera | 2 bytes o una palabra (varía de un compilador a otro) |
char | Carácter | 1 byte |
float | Numero de coma flotante (un numero incluye punto decimal y/o exponente) | 1 palabra (4 bytes) |
double | Numero de coma flotante de doble precisión (más cifras significativas y mayor valor posible del exponente) | 2 palabras (8 bytes) |
Los compiladores de C diseñados para computadoras personales o minicomputadoras pequeñas (computadoras con longitud de palabra menor que 32 bits) representan generalmente una palabra con 4 bytes (32 bits).
Algunos tipos básicos de datos se pueden ampliar utilizando los cualificadores de tipos de datos short (corto), long (largo), signed (con signo) y unsigned (sin signo). Por ejemplo se pueden definir cantidades numéricas como short int, long int o unsigned int (estos tipos de datos se suelen escribir simplemente short, long o unsigned, y se supone que son enteros). La interpretación de un tipo de datos entero con un cualificador delante puede variar de un compilador de C a otro, aunque existe una relación de sentido común. De esta forma, un short int requerirá menos memoria o la misma que un int ordinario, pero nunca más. De igual forma, un long int puede requerir la misma cantidad de memoria o más que un int ordinario, pero nunca una cantidad de memoria menor.
Si short int e int requieren la misma memoria (por ejemplo 2 bytes), entonces long int, generalmente, ocupará el doble (por ejemplo 4 bytes). O si int y long int ocupan la misma memoria (por ejemplo 4 bytes), entonces short int ocupará la mitad de memoria (por ejemplo 2 bytes). Recuerda que estas especificaciones pueden variar de un compilador de C a otro.
Un unsigned int ocupa la misma memoria que un int ordinario, con la diferencia de que en el caso de un int ordinario (o un short int o un long int), el bit más a la izquierda se reserva para el signo. En un unsigned int, todos los bits se utilizan para representar el valor numérico. De esta forma, un unsigned int puede llegar a almacenar un valor numérico aproximadamente el doble que un int ordinario (aunque, por supuesto, no puede almacenar valores negativos). Por ejemplo, si un int ordinario puede variar de –32 768 a +32 767 (esto es propio de un int de 2 bytes), entonces un unsigned int podrá tomar valores comprendidos entre 0 y 65 535. El cualificador unsigned se puede aplicar también a otros ints ya cualificados, por ejemplo unsigned short int o unsigned long int.
El tipo char se utiliza para representar caracteres individuales. Por tanto, el tipo char requerirá sólo un byte de memoria. Cada tipo char tiene una interpretación como entero equivalente, de esta forma un char es realmente una clase especial de entero pequeño (ver sección 2.4). En la mayoría de los compiladores, un dato tipo char podrá tomar valores de 0 a 255. También se puede utilizar datos unsigned char (con valores de 0 a 255) o datos signed char (con valores de –128 a +127).
Algunos compiladores permiten la aplicación del cualificador long a float o a double, por ejemplo long float o long double. De todos modos, el significado de estos tipos de datos varía de un compilador de C a otro. Así long float puede ser equivalente a double. Además, long double puede ser equivalente a double, o puede hacer referencia a un tipo de datos de doble precisión, "extra largo", que requiera más de dos palabras de memoria.
Cada identificador que represente un número o un carácter dentro de un programa en C debe estar asociado a uno de los tipos de datos básicos antes de que el identificador ap aparezca en una sentencia ejecutable. Esto se lleva a cabo mediante una declaración de tipo.
La programación en C++ ofrece la ventaja de permitir el desarrollo de aplicaciones modulares con código reutilizable. Un módulo en C++ consiste de dos tipos de archivo: las descripciones de interface y los archivos de implementación.
Los archivos de descripción de interface, tambien llamados archivos de encabezado (header) o archivos "include" (archivos .h). Los archivos de encabezado contienen las declaraciones de constantes, variables y funciones de las que consta el módulo, asi como llamadas a otros archivos de encabezado necesarios.
En los archivos de implementación (archivos .c, .cpp, .cc) se implementa el código para las funciones del módulo declaradas en el archivo de encabezado. Durante el proceso de compilación se preprocesan los archivos de implementación y se añaden los archivos de encabezado, obteniendose un archivo objeto que será combinado con otros archivos objeto y al que se le agregarán las librerias para obtener un archivo ejecutable.
Un archivo de encabezado se puede crear desde el IDE de desarrollo o desde cualquier editor de texto y agregandolo posteriormente al proyecto. El primer paso para crear un archivo de encabezado es agregar las directivas para la definición de un macro-identificador que será el nombre del archivo:
#ifndef identificador#define identificador
//Las declaraciones de la interface van aquí
#endif //identificador
La primera línea comprueba si el macro-identificador no ha sido definido, la segunda línea lo define.
Ejemplo:
archivo: MyHeader.h
#ifndef __MYHEADER_H#define __MYHEADER_H
#include #define PI .1415926535897932
float CalcCoseno(float Angulo) ;#endif /*__MYHEADER_H*/archivo: MyHeader.cpp
#include "MyHeader.h"
float CalcCoseno(float Angulo)
{float result;
result=(float)cos(Angulo*PI/180.0f);
return result;}
archivo main.cpp:
# include # include "MyHeader.h"
void main( void )
{float Ang = 45.0f;
printf( "El coseno de %f grados es %.3fn", Ang, CalcCoseno(Ang))
Identificadores y Palabras claves
Los identificadores son nombres que se les da a varios elementos de un programa, como variables, funciones y arrays. Un identificador está formado por letras y dígitos, en cualquier orden, excepto el primer carácter, que debe ser una letra. Se pueden utilizar mayúsculas y minúsculas (no acentuadas en la mayoría de los compiladores), aunque es costumbre utilizar minúsculas para la mayoría de los identificadores. No se pueden intercambiar mayúsculas y minúsculas, esto es, una letra mayúscula no es equivalente a la correspondiente minúscula.
El carácter de subrayado (_) se puede incluir también, y es considerado como una letra. Se suele utilizar este carácter en mitad de los identificadores. También se puede comenzar con un carácter de subrayado un identificador, aunque en la práctica no se suele hacer.
Ejemplo 2.1. Los siguientes nombres son identificadores válidos.
X y12 suma-1 -temperatura
nombres area porcentaje TABLA
Los siguientes nombres no son identificadores válidos por las razones señaladas.
4num el primer carácter debe ser una letra
"X" caracteres ilegales
orden-no carácter ilegal (-)
indicador error carácter ilegal (espacio en blanco)
No se limita la longitud de los identificadores. Algunas implementaciones de C reconocen sólo los ocho primeros caracteres, aunque la mayoría de ellas reconocen más (típicamente. 31 caracteres). El estándar ANSI reconoce 31 caracteres. El resto de los caracteres son utilizados para la comodidad del programador.
Ejemplo 2.2. Los identificadores suma-de-valores y suma-de-variaciones son válidos gramaticalmen
te. Sin embargo, algunos compiladores de C pueden no ser capaces de distinguirlos, ya que ambos tienen las mismas ocho primeras letras. De esta forma, en un compilador así sólo se podrá utilizar uno de estos identificadores.
Como norma general, un identificador debe tener los suficientes caracteres como para que su significado se reconozca fácilmente, por otra parte se debe evitar un excesivo número de caracteres.
Ejemplo 2.3. Se está redactando un programa en C para calcular el valor futuro de una inversión. Los identificadores valor y futuro valor son nombres simbólicos apropiados. Sin embargo, v y fv serían demasiado cortos, ya que no queda claro el significado de estos identificadores. Por otra parte, un identificador como f uturo-valor-de-una-invers ion no sería adecuado por ser demasiado largo e incómodo.
Hay ciertas palabras reservadas, denominadas palabras clave, que tienen en C un significado predefinido estándar. Las palabras clave sólo se pueden utilizar para su propósito ya establecido; no se pueden utilizar como identificadores definidos por el programador.
Las palabras clave son:
auto extern sizeof
break float static
case for struct
char goto switch
const if typedef
continue int union
default long unsigned
do register void
double return volatile
else short while
enum signed ,
Existen compiladores que incluyen todas o algunas de las siguientes palabras clave:
ada fiar near
asm fortran pascal
entry huge
Algunos compiladores de C pueden reconocer otras palabras clave. Para obtener una lista completa de las palabras clave de un determinado compilador se debe consultar su manual de referencia.
Nótese que todas las palabras clave están en minúsculas. Ya que los caracteres de las minúsculas y los de las mayúsculas no son equivalentes, se puede utilizar una palabra clave escrita en mayúsculas como un identificador. Esto no se suele hacer normalmente, y se considera propio de un estilo de programación pobre.
Autor Nombre del Libro
1. Luis Joyanes Aguilar Programación en C
2. James L. Antonakos, Programación Estructural en C
Kenneth C. Mansfield,
Jr. John Hull
Sitios webs Visitados
Nombre del sitio web
1. Computación Gráfica FI
http://computaciongrafica.wordpress.com/2008/03/29/archivos-de-cabecera-en-c/
Autor:
Ariel Paz
Itamar Harris
Universidad Tecnológica de Panamá
Centro Regional de Panamá Oeste
Facultad de Ing. Eléctrica
Asignatura:
Introducción a la Programación
Presentado a:
Bolivar Quijada
Fecha:
22 de Abril del 2010
Página anterior | Volver al principio del trabajo | Página siguiente |