Date post: | 11-Apr-2015 |
Category: |
Documents |
Upload: | adan-casiano |
View: | 138 times |
Download: | 2 times |
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 1 de 58
Tipos de Datos BásicosTipo de datos Descripción Requerimiento
típico de memoriaIntervalo típico
de valores
int enteros con signo 2 bytes de -32768 a 32767
char caracteres 1 byte de -128 a 127
floatnums. reales en coma
flotante de simpleprecisión
4 bytesde ~1.2E-38a ~3.4E+38
doublenums. reales en coma
flotante de dobleprecisión (más cifras
significativas yposibilidad de mayor
exponente)
8 bytes de ~2.2E-308a ~1.7E+308
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 2 de 58
Tipos de Datos Básicos
Tipo de datos Requerimiento típicode memoria
Intervalo típicode valores
short int 2 bytes de -32.768 a 32.767
long int 4 bytesde -2.147.483.647a +2.147.483.648
unsigned int 2 bytes de 0 a 65535
unsigned long int 4 bytes de 0 a 4.294.967.295
unsigned char 1 byte de 0 a 255
MODIFICADORES DE TIPO
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 3 de 58
Tipos de Datos Básicos
Tratándose de enteros, se pueden utilizar las palabras unsigned, short o long sin el identificador int, p.e.:
unsigned int unsigned etc. Se pueden mezclar caracteres y enteros en expresiones
aritméticas:int n; char c;n = 10 * n + c - ‘0’;
Todos estos tipos de datos son llamados colectivamente “tipos aritméticos”
Los tipos enteros y el tipo char se denominan “tipos integrales”.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 4 de 58
Tipos de Datos Básicos
Se dispone de un operador sizeof que devuelve en bytes el tamaño del tipo de datos o expresión que se le pasa como parámetro.
Su sintaxis es: sizeof( nombre_de_tipo )sizeof expresión
Ejemplo:main(){
printf( “El tamaño de short es %d bytes\n”,
sizeof(short) );}
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 5 de 58
Variables
Una variable se corresponde con una cierta región de memoria que puede almacenar cualquier valor de entre un cierto conjunto de valores denominado rango.
La región de memoria que representa una variable se asocia a un identificador al que se hace referencia en el programa.
El rango de valores de una variable depende del tipo de la variable.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 6 de 58
Variables: Declaración y Definición
La declaración de una variable especifica su nombre y tipo, pero no reserva necesariamente espacio de almacenamiento.
La definición de una variable especifica su nombre y tipo y reserva espacio para su almacenamiento.
Sintaxis de las variables.
tipo lista variables
clase de
almacenamiento
Todas las variables deben ser declaradas antes de que aparezcan en sentencias ejecutables.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 7 de 58
Variables: Declaración y Definición
Sintaxis del tipo
modificador modificador tipo
modo de tipo base
acceso
El tipo especifica el tipo de datos de cada una de las variables de la lista subsiguiente. En caso de no especificar nada se considera que el tipo es int.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 8 de 58
Variables: Declaración y Definición
La lista de variables consiste en la secuencia de los correspondientes identificadores (y opcionalmente inicializaciones) separados por comas.
identificador
variable
inicialización
variable
,
lista variables
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 9 de 58
Variables: Declaración y Definición
En la definición de una variable se puede especificar un valor inicial en forma de una expresión.
= expresión
inicializar variable
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 10 de 58
Variables: Modos de Acceso
Se definen dos modificadores de acceso para controlar la forma en que se accede a las variables
const: una variable así declarada no se puede modificar durante la ejecución del programa; únicamente puede dársele un valor inicial en su definición.
const unsigned int y = 3;
volatile: Se utiliza para indicar al compilador que el valor de una variable puede cambiar por medios no especificados explícitamente en el programa.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 11 de 58
Variables: Clases de Almacenamiento
En “C” hay dos formas de caracterizar las variables:
tipo de datos y clase de almacenamiento.
El tipo de datos se refiere a la información representada por una variable.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 12 de 58
Variables: Clases de Almacenamiento
La clase de almacenamiento se refiere al ámbito (reglas de alcance) y permanencia de la variable dentro del programa.
La clase de almacenamiento especifica la forma en que se deben almacenar las variables, siendo los posibles especificadores:
extern, static, auto, register
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 13 de 58
Variables: Reglas de Alcance
El lugar donde se declaran las variables condiciona la forma en que pueden ser utilizadas por otras partes del programa.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 14 de 58
Variables: Reglas de Alcance
Existen tres partes donde se puede declarar una variable:
Fuera de todas las funciones incluida la función main(); este tipo de variable es global y se puede utilizar en cualquier parte del programa.
Dentro de las funciones; estas variables se denominan locales y sólo se pueden utilizar dentro del bloque en que se declaran.
Como parámetros formales de funciones; se utilizan para recibir argumentos cuando se invoca a una función.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 15 de 58
Variables: clase de almacenamiento extern
El lenguaje permite que se enlacen distintos módulos de un programa después de haber sido compilados independientemente.
Como consecuencia de lo anterior tiene que existir alguna forma de indicar cuáles son las variables globales de un programa para que exista una sola copia de las mismas.
La solución es el especificador extern, que indica que las variables a las que acompaña se definen en algún otro lugar.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 16 de 58
Variables: clase de almacenamiento extern
En lo que se refiere a las variables que se pueden compartir entre ficheros (variables externas), hay que distinguir entre una declaración que es también definición y una declaración externa.
Una variable externa es una variable global, que se define con una declaración normal que aparece fuera, y normalmente antes, de las funciones que la utilizan.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 17 de 58
Variables: clase de almacenamiento extern
La definición de una variable externa es una declaración, cuyo ámbito (como declaración) se limita al fichero en que aparece, que indica al compilador que tiene que reservar espacio de almacenamiento
Debe existir una sola definición de cada variable externa entre todos los ficheros que constituyen el programa.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 18 de 58
Variables: clase de almacenamiento extern
La declaración externa de una variable externa es una declaración, cuyo ámbito se limita al bloque o al fichero en que se incluye, que indica al compilador que no tiene que reservar espacio de almacenamiento.
Una declaración externa de una variable empieza con el especificador extern y su tipo tiene que coincidir con el indicado en su definición (que se encuentra en otro fichero).
Sólo se puede inicializar una variable externa en su definición:
fichero1 fichero2
int y = 0; extern int y;
se refieren a la misma variable
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 19 de 58
Variables: clase de almacenamiento static
Las variables de clase static tienen almacenamiento permanente pero alcance restringido.
Cuando se define como static una variable interna se genera almacenamiento permanente para ella de tal forma que mantiene su valor entre ejecuciones sucesivas del bloque en que está definida, y su ámbito se limita a este bloque.
Cuando se define como static una variable externa se genera almacenamiento permanente para ella y su ámbito se limita al fichero en que está definida.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 20 de 58
Variables: clase de almacenamiento static
Si no existiesen variables locales estáticas se tendrían que utilizar variables globales, con los efectos secundarios que esto comporta.
Ejemplo
fichero1 fichero2 fichero3
static int i = 0; extern int i; int i=0;
La variable i de fichero1 no es la variable a la que se hace referencia en fichero2
La variable i de fichero2 y fichero3 sí es la misma
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 21 de 58
Variables: clase de almacenamiento auto
Las variables (locales) automáticas se crean cada vez que se entra en el bloque en el que han sido definidas y desaparecen cuando se sale de él
No conservan su valor de una ejecución del bloque a la siguiente, y sólo son accesibles en el interior del bloque en el que se definen.
Si en la definición de una variable local no se especifica la clase de almacenamiento, por defecto se toma por auto.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 22 de 58
Variables: clase de almacenamiento register
Cuando a una variable se añade el especificador register se indica al compilador que la almacene en algún registro de la CPU.
El especificador register sólo se puede aplicar a variables automáticas, o a los parámetros formales de una función.
Cuando las variables declaradas como register no se pueden almacenar en registros de la CPU se toman por auto y se almacenan en memoria.
Dado que el acceso a variables de este tipo es muy rápido son ideales para el control de bucles
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 23 de 58
Variables: Generalidades
Las variables estáticas y externas se inicializan una
única vez al comienzo del programa; si no se
inicializan explícitamente se inicializan a 0.
Las variables automáticas y de clase register se
inicializan cada vez que se ejecuta el bloque donde
están definidas. Si la inicialización no es explícita, se
inicializan con valores indefinidos (basura)
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 24 de 58
ELEMENTOS SINTÁCTICOS BÁSICOS Constantes y Strings Las constantes son valores fijos que no pueden alterarse
durante la ejecución del programa.
Las constantes de tipo numérico deben cumplir las normas siguientes:– no pueden incluir comas ni espacios en blanco,– pueden ir precedidas del signo ( - ),– no pueden exceder de un límite máximo y mínimo especificado.
Las constantes enteras pueden escribirse en decimal, en octal (comienzan por 0) y en hexadecimal (comienzan por 0x o 0X)
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 25 de 58
ELEMENTOS SINTÁCTICOS BÁSICOS: Constantes y Strings
Una constante entera sin signo se identifica añadiéndole la
letra U o u al final.
Una constante entera larga se identifica añadiéndole la letra L
o l al final.
Una constante real es un número en base 10 que contiene un
punto decimal y/o un exponente entero (separado de la
mantisa con una E o una e) y opcionalmente un signo. Se
considera de doble precisión si no termina por la letra F o f
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 26 de 58
ELEMENTOS SINTÁCTICOS BÁSICOS: Constantes y Strings
Una constante carácter se escribe como un solo carácter encerrado entre comillas simples.
Una constante cadena de caracteres se escribe como una secuencia de cualquier número de caracteres consecutivos, encerrada entre comillas dobles.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 27 de 58
Operadores Aritméticos: Aditivos
Los operadores aritméticos aditivos:+ (suma) - (resta)
son binarios, por lo que requieren dos operandos.
Los operandos pueden ser expresiones de cualquier tipo de datos básico:char int short long unsigned float double
También puede tener sentido sumar o restar una expresión de cualquier tipo integral (char, int, short, long, unsigned) a un puntero a un elemento de un array (un uso de la llamada “aritmética de punteros”)
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 28 de 58
Operadores Aritméticos: Multiplicativos
Los operadores aritméticos multiplicativos (siempre
binarios) son los siguientes:
* (producto) / (cociente) % (resto de división entera)
Los operadores * y / pueden trabajar sobre expresiones de
cualquier tipo de datos básico.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 29 de 58
Operadores Aritméticos: Multiplicativos
Cuando / se aplica a dos operandos integrales se trunca la parte fraccionaria del resultado.
Ejemplo: 7/2 = 3; 7./3 = 2.33….
Los operandos de % deben ser expresiones de tipo integral (el segundo, no nulo). En general el resultado siempre lleva el signo del numerador.
Ejemplos: 7%3 = 1; (-7)%3 = -1;
7%(-3) = 1; (-7)%(-3) = -1
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 30 de 58
Operadores Aritméticos:Cambio de Signo
Los únicos operadores aritméticos unarios (que requieren
un solo operando) son - y + (el segundo fue nuevo en el
estándar ANSI). El - produce el cambio de signo del
operando.
El operando puede ser una expresión de cualquier tipo de
datos básico.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 31 de 58
Operadores Relacionales
Existen 4 operadores relacionales, todos ellos binarios:Operador Significado < menor que <= menor o igual que > mayor que >= mayor o igual que
Se pueden aplicar a expresiones de cualquier tipo de datos básico.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 32 de 58
Operadores Relacionales
El resultado de estos operadores es 0 cuando la
relación especificada es falsa y 1 cuando es cierta (el
tipo del resultado es int, en “C” no hay booleano).
También es posible comparar punteros, dependiendo el
resultado de la posición relativa de los objetos
apuntados en el espacio de direcciones del programa.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 33 de 58
Operadores Relacionales y Lógicos
Los operadores de igualdad también son binarios:Operador Significado == igual que != distinto de
Los operadores lógicos son binarios; también se llaman conectivas lógicas:
Operador Significado && y lógica || o lógica
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 34 de 58
Operadores Relacionales y Lógicos
Los operandos no tienen por qué ser del mismo tipo, y
pueden ser expresiones de cualquier tipo de datos básico.
El único operador lógico unario es la negación lógica !.
Devuelve 1 si el operando es 0 y 0 si el operando es
distinto de 0.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 35 de 58
Operadores de Manejo de Bits
Como el lenguaje también fue diseñado para sustituir al lenguaje ensamblador en la mayoría de las tareas de programación, dispone de operadores especiales para manejar bits, siendo éstos:
Operador Significado Operador Significado & and bit a bit | or bit a bit
^ xor bit a bit << despl. a la izda. >> desp. a la drcha. ~ complemento a 1
Se pueden aplicar a cualquier operando de tipo integral
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 36 de 58
Operadores de Manejo de Bits
Los operadores de desplazamiento de bits desplazan los bits del operando izquierdo tantas posiciones como indique el operando derecho.
n << 2
Cuando el desplazamiento es hacia la izquierda se añaden 0`s por la derecha y, en general, viceversa.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 37 de 58
Operadores de Manejo de Bits: Advertencia
Dado que la precedencia de los operadores de manejo de bits es menor que la de los operadores de igualdad, las expresiones de comprobación de bits deben encerrarse entre paréntesis:
x & mascara == 0 <#> (x & mascara) == 0
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 38 de 58
Operadores y Expresiones de Asignación
Los operadores de asignación son todos binarios y son:= += -= *= /= %= aritméticos>>= <<= &= ^= |= manejo de bits
El valor del operando derecho se convierte al tipo del operando izquierdo.
Los operadores de asignación requieren que el operando izquierdo sea una referencia a una zona de almacenamiento (un lvalue) y no una expresión cualquiera.
Expresiones de asignación del tipo e1 op= e2 son abreviaturas: e1 op= e2 e1 = e1 op ( e2 )
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 39 de 58
Operadores de Incremento y Decremento
El lenguaje dispone de dos operadores unarios para incrementar y decrementar variables de cualquier tipo de datos básico y punteros:
Operador Significado ++ incremento -- decremento
Estos operadores incrementan o decrementan en una la variable a la que están asociados.
Se pueden aplicar como prefijo o como sufijo:++n --nn prefijos (incrementan antes de usar)n++ n-- sufijos (incrementan después de usar)
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 40 de 58
Expresiones Condicionales El lenguaje dispone de un operador condicional ( ?: )
para evaluar alternativas. Su sintaxis es:expresión1 ? expresión2 : expresión3
Se evalúa expresión1 y si es distinta de 0 (true) el resultado de la expresión condicional es expresión2. Si el resultado de expresión1 es 0 (false) el resultado es expresión3.
Suelen aparecer en la parte derecha de una sentencia de asignación simple. Se asigna al identificador de la izquierda el valor de la expresión condicional.
min = ( f < g ) ? f : g;
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 41 de 58
Precedencia de operadores
Precedencia Asociatividad
( ) [ ] -> . I-D
- ! ++ -- (tipo) & sizeof * D-I
* / % I-D
+ - I-D
<< >> I-D
< <= > >= I-D
== != I-D
& (and a nivel de bits) I-D
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 42 de 58
Precedencia de operadores
Precedencia Asociatividad
^ (or exclusiva a nivel de bits) I-D
| (or a nivel de bits) I-D
&& I-D
|| I-D
? : (operador condicional) D-I
= += -= *= /= %=>>= <<= &= ^= |=
D-I
, I-D
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 43 de 58
Precedencia de operadores
Los operadores situados en la misma fila tienen la
misma precedencia.
Las filas están ordenadas de mayor a menor
precedencia.
A igualdad de precedencia los operadores se
agrupan de acuerdo a su asociatividad.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 44 de 58
Conversiones de tipos
Cuando se mezclan operandos de diferentes tipos se produce una conversión. Las reglas son:
En cualquier operación en que se mezclan operandos de diferentes tipos se produce una conversión del tipo inferior al tipo superior antes de efectuarse la operación, siendo este último el tipo del resultado.
El rango o categoría de tipos de mayor a menor es:double, float , long, int, short, char
En una sentencia de asignación, el resultado final de los cálculos se reconvierte al tipo de la variable a la que van a ser asignados.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 45 de 58
Conversiones de Tipos:Operador de Moldeado
El operador de moldeado (o cast) sirve para forzar conversiones explícitas del tipo de una expresión.
Su sintaxis es: ( tipo de datos ) expresión .
El resultado de la expresión se convierte al tipo de datos especificado entre paréntesis.
Tiene la misma precedencia que el resto de los operadores unarios.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 46 de 58
Conversiones de tipos: Advertencias
Una asignación que implica una conversión de tipos
conlleva una promoción o pérdida de rango del valor
asignado, según el tipo de la variable a la que se asigna.
La promoción suele ser inocua, suele pasar inadvertida.
La pérdida de rango puede provocar auténticas catástrofes
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 47 de 58
Conversión de Tipos:Parámetros de Funciones
Como los parámetros actuales en las llamadas a funciones también son expresiones, se les pueden aplicar las reglas de conversión de tipos.
En ANSI C, los parámetros formales de las funciones se pueden declarar mediante un prototipo de la función, y por tanto se realizan comprobación de tipos y conversiones entre parámetros formales y actuales; ejemplo:
int nombre_funcion (int para1, char para2)
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 48 de 58
Conversión de tipos
Para Obtener Desde Observaciones
char unsigned char Si el valor > 127, el resultado es negativo
char short int Se pierden los 8 bits más significativos
char int Se pierden los 8 bits más significativos
char long int Se pierden los 24 bits más significativos
short int long int Se pierden los 16 bits más significativos
int float Se pierde la parte fraccionaria (resultado indefinido si el valor no se ajusta al rango
de int)
float double Se redondea o se trunca, dependiendo de la implementación, según la precisión del
resultado (resultado indefinido si el valor no se ajusta al rango de float)
Nota: Para esta tabla se ha considerado una anchura de palabra de 16 bits.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 49 de 58
Conversiones de Tipos:Enteros Sin Signo
Para Obtener Desde Valor Resultado
unsigned short positivo no cambia
unsigned short negativo depende de la representación
int unsigned dentro del rango del int no cambia
int unsigned fuera del rango depende de la representación
long unsigned dentro del rango no cambia
long unsigned fuera del rango depende de la representación
unsigned long positivo no cambia
unsigned long negativo depende de la representación
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 50 de 58
Precedencia y Orden de Evaluación
En la mayoría de los lenguajes no se especifica el orden de evaluación de los operandos de los operadores.
El resultado de evaluar una expresión que incluye operadores de asignación y de incremento o decremento puede depender del orden de evaluación de las operaciones implicadas.
En “C” no se especifica el orden de evaluación de los parámetros de las funciones.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 51 de 58
Precedencia y Orden de Evaluación: Advertencias
Cuidado con los efectos laterales producidos por las expresiones
de asignación y los operadores de incremento y/o decremento.
Cuidado con la escritura de programas cuyos resultados dependen
del orden de evaluación de los operandos. Los resultados
intermedios deben guardarse en variables temporales.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 52 de 58
Tipos Enumerados
Es posible declarar una lista de constantes enteras con un nombre asociado mediante la declaración de tipos enumerados.
El tipo enumerado es una lista de símbolos cuya sintaxis es
enum etiqueta { lista_id_ctes } lista_variables;
La etiqueta especifica el nombre del tipo y es opcional.
En las variables de un tipo enumerado sólo se deben almacenar constantes especificadas para ese tipo (pero el estándar no obliga al compilador que lo compruebe).
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 53 de 58
Tipos Enumerados
La etiqueta se puede usar para declarar variables de ese
tipo en otros puntos del programa.
No se debe olvidar que cada símbolo de lista_id_ctes
representa internamente un valor entero y por tanto puede
utilizarse en cualquier expresión entera.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 54 de 58
Tipos Enumerados:operaciones válidas
Se puede asignar una constante de un tipo enumerado a una variable del mismo tipo:
enum felinos { gato = 15, tigre, leon, puma};enum felinos mascota;mascota = gato;
Se pueden utilizar los operadores de igualdad:if (mascota == gato) .....if (mascota != leon) .....
Se pueden utilizar operadores aritméticos con constantes de un tipo enumerado.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 55 de 58
Tipos Enumeradosoperaciones que no conviene realizar
No conviene utilizar los operadores de asignación (excepto =). mascota += gato /* advertencia */
No conviene utilizar los operadores de relación. if (mascota > puma) .... /* advertencia */
No conviene utilizar los operadores aritméticos. mascota = mascota + gato; /* advertencia */
Normalmente no conviene utilizar una constante de un tipo enumerado como subíndice de un array. fichas[rojo] = 23; /* desaconsejado */
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 56 de 58
Tipos Enumerados:Utilización
Contribuyen a la legibilidad de los programas
Se utilizan normalmente para uso interno de los programas y no en E/S.
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 57 de 58
Definición de Tipos
Cuando a una declaración de variables precede la palabra
typedef, los identificadores especificados no se refieren a
variables, sino a nombres de tipos de datos.
Estos nombres de tipos pueden usarse posteriormente en la
declaración de variables o en conversiones de tipos.
Su sintaxis es:
typedef tipo lista_nombre;
TIPOS DE DATOS Y OPERADORES L.P.S.I. Pág. 58 de 58
Definición de Tipos
El alcance de la definición depende de la localización de la
sentencia typedef. Si se realiza dentro de una función, el
alcance queda confinado a la misma. Si la definición es
externa (a toda función) el alcance es global.
Este proceso ayuda a que los programas sean menos
dependientes de la máquina y por tanto más transportables.