Diferencia entre revisiones de «Variables»
Ir a la navegación
Ir a la búsqueda
Sin resumen de edición |
|||
| (No se muestran 4 ediciones intermedias del mismo usuario) | |||
| Línea 68: | Línea 68: | ||
*uint8_t significa unsigned int de 8 bits. Las variables char también son de 8 bits y se podrian utilizar indistintamente, pero no es recomendable porque el código tiene más probabilidad de ser portable si se utilitza uint8_t para designar una variable de 8 bits debido a que no en todos los procesadores el char es de 8 bits. Con los int pasa lo mismo, en la tabla pone que son de 16 bits, pero puedes encontrar plataformas donde sean de 32 bits (creo que en los procesadores de 64 bits). En resumen, si se quiere estar seguro que el código va a ser compatible y las variables ocuparan solo lo que nosotros queremos que ocupen, es mejor utilizar las versiones uintN_t o intN_t.''[http://stackoverflow.com/questions/1725855/uint8-t-vs-unsigned-char Extraído de Stack Overflow]'' | *uint8_t significa unsigned int de 8 bits. Las variables char también son de 8 bits y se podrian utilizar indistintamente, pero no es recomendable porque el código tiene más probabilidad de ser portable si se utilitza uint8_t para designar una variable de 8 bits debido a que no en todos los procesadores el char es de 8 bits. Con los int pasa lo mismo, en la tabla pone que son de 16 bits, pero puedes encontrar plataformas donde sean de 32 bits (creo que en los procesadores de 64 bits). En resumen, si se quiere estar seguro que el código va a ser compatible y las variables ocuparan solo lo que nosotros queremos que ocupen, es mejor utilizar las versiones uintN_t o intN_t.''[http://stackoverflow.com/questions/1725855/uint8-t-vs-unsigned-char Extraído de Stack Overflow]'' | ||
*En la tabla de arriba vemos un extracto del archivo stdint.h. Vemos que uintN_t son typedef de tipos de variables. | *En la tabla de arriba vemos un extracto del archivo stdint.h. Vemos que uintN_t son typedef de tipos de variables. Según entiendo en el punto anterior los uintN_t/intN_t son tipos de variables (como lo es int, o char), pero viendo el archivo stdint.h son solo typedefs. Esto ya me lo miraré más a fondo. De momento lo que se es que si quiero asegurarme de que una variable me ocupe un tamaño concreto lo tengo que hacer con uintN_t/intN_t | ||
= Static = | = Static = | ||
== Static Local == | |||
*Son variables que cuando acaba la función no se destruyen y matienen el valor cuando se vuelve a crear la función. | |||
*El espacio asignado en la memoria no cambia durante la ejecución del programa. | |||
== Static Global == | |||
= Volatile = | = Volatile = | ||
= Const = | = Const = | ||
*Las variables const son constantes. Se definen al declararlas y luego no se pueden modificar, solo leer. | |||
*Siguen ocupando RAM. | |||
*Una forma de declarar constantes y que no ocupen RAM es con #define, pero no se si es una buena práctica | |||
= Boolean = | = Boolean = | ||
Revisión actual - 15:34 20 mar 2013
Tipos de variables
[editar]| Tipo de dato | Tamaño de bits |
|---|---|
| char (signed y unsigned) | 8 bits |
| int (signed y unsigned) | 16 bits |
| short (signed y unsigned) | 16 bits |
| long (signed y unsigned) | 32 bits |
| long long (int) signed y unsigned | 64 bits |
| float | 32 bits |
| double | 32 bits |
| double | 64 bits |
Extraido de cursomicros.com
- Las caracteristicas signed o unsigned sirven para decir si el número podrá ser negativo. Si no se puede poner en negativo tendremos capacidad para más números
- Las variables son espacios de memoria donde se guardan los datos necesarios par ala ejecución del programa. Estos datos pueden ser numeros enteros, numeros de coma flotante, ... Una cosa a tener en cuenta es que los caracteres son numeros que mediante la tabla ASCII se convierten en letras, pero lo que se guarda en memoria son números, no letras.
uintN_t/intN_t
[editar]| typedef signed char | int8_t |
| typedef unsigned char | uint8_t |
| typedef signed int | int16_t |
| typedef unsigned int | uint16_t |
| typedef signed long int | int32_t |
| typedef unsigned long int | uint32_t |
| typedef signed long long int | int64_t |
| typedef unsigned long long int | uint64_t |
Extraido de AVR Libc Home Page
- uint8_t significa unsigned int de 8 bits. Las variables char también son de 8 bits y se podrian utilizar indistintamente, pero no es recomendable porque el código tiene más probabilidad de ser portable si se utilitza uint8_t para designar una variable de 8 bits debido a que no en todos los procesadores el char es de 8 bits. Con los int pasa lo mismo, en la tabla pone que son de 16 bits, pero puedes encontrar plataformas donde sean de 32 bits (creo que en los procesadores de 64 bits). En resumen, si se quiere estar seguro que el código va a ser compatible y las variables ocuparan solo lo que nosotros queremos que ocupen, es mejor utilizar las versiones uintN_t o intN_t.Extraído de Stack Overflow
- En la tabla de arriba vemos un extracto del archivo stdint.h. Vemos que uintN_t son typedef de tipos de variables. Según entiendo en el punto anterior los uintN_t/intN_t son tipos de variables (como lo es int, o char), pero viendo el archivo stdint.h son solo typedefs. Esto ya me lo miraré más a fondo. De momento lo que se es que si quiero asegurarme de que una variable me ocupe un tamaño concreto lo tengo que hacer con uintN_t/intN_t
Static
[editar]Static Local
[editar]- Son variables que cuando acaba la función no se destruyen y matienen el valor cuando se vuelve a crear la función.
- El espacio asignado en la memoria no cambia durante la ejecución del programa.
Static Global
[editar]Volatile
[editar]Const
[editar]- Las variables const son constantes. Se definen al declararlas y luego no se pueden modificar, solo leer.
- Siguen ocupando RAM.
- Una forma de declarar constantes y que no ocupen RAM es con #define, pero no se si es una buena práctica