Indice1. Introducción 2. Variables De Tipo: Auto, Static, Extern, y Register. 3. Variables registro (register) 4. Modificadores Tipo: Short, Long, Signed y unsigned 5. Conclusión 6. Bibliografía
Primeramente es preciso determinar un lenguaje común por lo cual definiremos Modificador como // La acción de cambiar una cosa sin alterar su naturaleza misma//Determinar ó cambiar el sentido.1 Y el significado de Identificador, que son nombres que se le asignan a varios elementos de un programa , con variables, funciones y formaciones. Teniendo así que un identificador nos permite asignarle un nombre a un variable y el modificador es el que cambiara su sentido sin cambiar su naturaleza, así una variable denominada PRESU_FINAL (presupuesto final) será una variable de tipo numérica Real y su modificador nos dirá si se puede ocupar como una variable ejecutable en todo el programa o solo en una rutina o subrutina del mismo, teniendo así presente cual es la función de un identificador y de un modificador daremos comienzo.
2. Variables De Tipo: Auto, Static, Extern, y Register.
Un programa C consta de un conjunto de objetos externos, que son variables o funciones. El adjetivo "externo" se usa principalmente en contraste con "interno" que describe los argumentos y las variables automáticas definidas dentro de las funciones. Las variables externas se definen fuera de cualquier función y, por lo tanto, son potencialmente utilizadas por muchas funciones. También estas son siempre externas, pues C no permite definir funciones dentro de otras, por definición, las variables externas son también "globales", por que todas las referencias a tales variables del mismo nombre son referenciadas a la misma cosa.
Variables tipo Auto: Las variables automáticas (auto) son internas a una función; comienzan a existir al entrar a una rutina y desaparecen al terminar la misma; por eso no conservan su valor entre dos llamadas sucesivas y se les ha de dar un valor en la entrada a la función. Si no se les asigna nada contendrán "basura".
Variables tipo Extern: Las variables externas (extern) son permanente No aparecen y desaparecen, sino que mantienen su valor entre una invocación de la función y la siguiente. Las variables externas son accesibles globales y por ello ofrecen una alternativa a los argumentos de la función y valores de retorno para comunicación de datos en ellas. Por esta razón si una función situada en un fichero fuenbte desea utilizaruna variable de este tipo debe declararla o referenciarla con la palñabra extern Archivi1 Archivo2 Int salario, impuesto; extern int salario, impuesto; Char Nom_empl[30] ; extern Nom_empl[30] /*nombre empleado*/ Main ( ) void func1( ) {{
Variables tipo (Estatic) estáticas Las variables estáticas constituyen una tercera clase de almacenamiento, además de las extern y automáticas. Las variables estáticas pueden ser internas o externas, las variables static internas son locales a una función en la misma forma que las automáticas pero, a diferencia de ellas, su existencia es permanente, en lugar de aparecer y desaparecer al activar la función. Una variable static externa es accesible en el resto del archivo fuerte en el que está declarada pero no en otro lado . por lo tanto, el almacenamiento static externo proporciona un medio de ocultar nombres como buf y bufp en la combinación getch-ungetch, pero serán externas para poder ser compartidas y se mantendrán inaccesibles a los usuarios de getch y ungetch, para que no exista posibilidad de conflicto. Si las rutinas y las dos variables se compilan en la forma Static char buf(BUFSIZE); /* buffer parta ungatch*/ Static intbufp=0; /* siguiente posición libre en buf*/ getch( ) { …} getch ( ) { … }
El resto de las rutinas serán incapaces de tener acceso a buf y butp. De hecho, no habrá conflictos con los mismos nombres en otro archivo del mismo programa. El almacenamiento estático, interno o externo se especifica al prefijar la declaración normal con palabras static: la variable es externa si se define fuera de las funciones e interna si se define dentro de una función. Normalmente, las funciones son objetos externos: sus nombres son conocidos globalmente. Sin embargo, su nombre será inaccesible fuera del archivo en que se declaren. En C, static no sólo indica permanencia, sino también cierto grado de algo que podría ser llamado "privacidad", Los objetos static internos son conocidos solamente dentro de una función, los objetos static externos (variables o funciones) se conocen sólo en el archivo fuente en que aparecen y sus nombres no interfieren con variables ni funciones que llevan el mismo nombre en otros archivos.
Otro ejemplo seria: Series (void) { static int cont_deca; /* contador decada*/ cont_deca=cont_deca +10; retun (cont_decada); }
3. Variables registro (register)
La ultima y cuarta clase de almacenamiento se denomina register. Una declaración register avisa al compilador que la variable en cuestión será muy usada. Cuando es posible las variable sregister se colocan en los registros de la máquina, lo que producirá programas más cortos y más rápidos. La declaración regirter es del tipo Regiter int x; Register char c; La parte int parte int puede omitirse, register sólo se aplica a variables automáticas y a los parámetros formales de una función. En este ultimo caso la declaración será F(c,n) Register int c, n: { register int i; … }
En práctica existen algunas restricciones en las variables registro, que reflejan la realidad del harware subyacente. Nada más unas pocas variables de cada función se pueden mantener en registros, y sólo se permite algunos tipos.
4. Modificadores Tipo: Short, Long, Signed y unsigned
Los compiladores de C diseñados para computadoras personales s o microcomputadoras (computadoras con longitud de palabra menor que 32 bit) representan generalmente una palabra con 4 bytes (32 bits). Algunos tipos básicos de datos se pueden ampliar utilizando los modificadores de tipo de datos Short(corto), Long(largo), Signed(con signo) Unsigned(sin signo)
Tipo | Bits | Rango |
int | 16 | -32.767 a 32.767 |
unsigned int | 16 | 0 a 65.535 |
signed int | 16 | -32.768 a 32.767 |
short int | 16 | -32.768 a 32.767 |
unsigned short int | 16 | 0 a 65.535 |
signed short int | 16 | -32.768 a 32.767 |
log int | 32 | -2147483648 a 2147483648 |
signe long int | 32 | -2147483648 a 214748367 |
Char | 8 | -128 a 127 |
Unsigned char | 8 | 0 a 255 |
Signed char | 8 | -128 a 127 |
Por ejemplo, se puedendefinir cantidades enteras como short int , long. Int o insigne int (estos tipos de datos se suelen escribir simplemente Short, long, o insigne y se supone que son enteros). La interpretación de un tipo de daro entero modificador 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 un int ordinario, pero nunca una cantidad de menoría 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 ocupa la misma memoria (4 Bytes), entonces short int ocupará la mitad de memoria (2 bytes) Un Unsigned int ocupa la misma memoria que un int ordinario. Sin embargo, en el caso de un int ordinario ( o un short int o un Long int), el bit más a la izquierda se reservara para el signo. En un unsigned int, todos los bits se utilizan para representar el valor numerico , de esta forma , un unsigned int puede llegar a almacenar un valor numerico aproximadamente el doble que un int ordinario (uan que por supuesto no puede almacenar valores negativos).
Constantes. (const.) C tiene cuatro tipos básicos de constantes: constantes enteras, constantes en coma flotante, constantes de carácter y constantes de cadena de carácter. Es más, hay distintas clases de constantes enteras y en coma flotante, Las constantes enteras y en coma flotante representan numeras. Se las denomina, en general, constantes de tipo numérico. Las siguientes reglas se pueden aplicar a todas las constantes numéricas. No se pueden incluir comas ni espacios en blanco en la constante Si se desea, la constante puede ir presenciada de un signo menos(-) (realmente, el signo menos es un operador que cambia el signo de una constante positiva, aunque se puede ver como parte de la constante misma) El valor de una constante no se pude exceder un limite máximo y un mínimo especificado. Para cada tipo de constantes, estos limites varían de un compilador a otro. Este tipo de datos no puede cambiar durante la ejecución del programa. Por ejemplo Const float pi =3.141592
Para tener un buen conocimiento de los tipos de datos así como la diversidad de opciones que nos permite utilizar C , es necesario estar conciente que una variable puede tener un sin fin de utilidades de acuerdo al programa que se implemente, Una herramienta básica de los lenguajes de alto nivel como es C. Un programador tiene que tener en cuenta el tipo de hardware con el que esta trabajando y es necesario asignar memoria conforme la pida el programa, No más y no menos, esto es lo primordial del conocimiento de los modificadores y los tipos de variables que se pueden utilizar.
Diccionario Enciclopédico Larousse tomo2 El lenguaje de Programación C, C++ Editorial: Mc Graw-Hill 2da. Edición Programación en C Serie Shaun
Trabajo enviado Por Alex Mociños Lugo Instituto Tecnológico de Estudios Superiores del Sur Este
Tel. (01) 922 22 12458 Minatitlán, Veracruz México