usar uint8_t uint16_t uint16 como c linux

uint8_t - ¿Cuál es la diferencia entre uint16_t y unsigned short int en caso de un procesador de 64 bits?



uint8_t equals (2)

Llegué a usar una variable de tipo uint16_t , pero no puedo usar ese tipo de datos debido a las limitaciones de mi proyecto. ¿Es posible un unsigned short int lugar de uint16_t ? No sé la diferencia entre ambos. ¿Alguien podría aclarar por favor?


Se garantiza que uint16_t es un entero sin signo que tiene un tamaño de 16 bits

se garantiza que el unsigned short int es un short integer sin short integer , donde el compilador (y posiblemente los indicadores del compilador) que está utilizando actualmente define short integer . Para la mayoría de los compiladores para hardware x86, un short integer tiene un tamaño de 16 bits.

También tenga en cuenta que según el estándar ANSI C solo se define el tamaño mínimo de 16 bits, el tamaño máximo depende del desarrollador del compilador

Límites mínimos de tipo

Cualquier compilador conforme a la Norma también debe respetar los siguientes límites con respecto al rango de valores que cualquier tipo particular puede aceptar. Tenga en cuenta que estos son límites inferiores: una implementación es libre de exceder cualquiera o todos estos. Tenga en cuenta también que el rango mínimo para un char depende de si un char se considera firmado o no.

Tipo de rango mínimo

signed char -127 to +127 unsigned char 0 to 255 short int -32767 to +32767 unsigned short int 0 to 65535


uint16_t es un entero de 16 bits sin signo.

unsigned short int es un entero corto sin signo, pero el tamaño depende de la implementación. El estándar solo dice que es al menos de 16 bits (es decir, el valor mínimo de UINT_MAX es 65535 ). En la práctica, generalmente es de 16 bits, pero no se puede tomar eso como garantizado.

Nota:

  1. Si desea un entero de 16 bits sin signo portátil, use uint16_t .
  2. inttypes.h y stdint.h se introducen en C99. Si está utilizando C89, defina su propio tipo.
  3. Puede que uint16_t no se proporcione en ciertas implementaciones (consulte la referencia a continuación), pero el unsigned short int siempre está disponible.

Referencia: C11 (ISO / IEC 9899: 201x) §7.20 Tipos enteros

Para cada tipo descrito aquí que proporciona la implementación) deberá declarar ese nombre typedef y definir las macros asociadas. A la inversa, para cada tipo descrito aquí que la implementación no proporciona, no deberá declarar ese nombre typedef ni definir las macros asociadas. Una implementación debe proporcionar los tipos descritos como "requeridos", pero no es necesario que proporcione ninguno de los otros (descritos como "opcionales").