variable type long data bool and c++ c char bits

type - long long c++ range



Código portátil-bits por char (4)

Al menos, similar al tamaño entero en las arquitecturas de 64 bits, las plataformas futuras pueden usar un carácter más amplio, con más bits. Los caracteres ASCII pueden quedar obsoletos, reemplazados por unicode. Esta podría ser una razón, así que ten cuidado.

Sé que los estándares de C / C ++ solo garantizan un mínimo de 8 bits por char, y que teóricamente 9/16/42 / cualquier otra cosa es posible, y que por lo tanto todos los sitios sobre cómo escribir códigos portátiles advierten contra asumir 8bpc. Mi pregunta es ¿qué tan "no portátil" es esto realmente?

Dejame explicar. Como lo veo, hay 3 categorías de sistemas:

  1. Computadoras - me refiero a computadoras de escritorio, computadoras portátiles, servidores, etc. con Mac / Linux / Windows / Unix / * nix / posix / lo que sea (sé que la lista no es estrictamente correcta, pero se entiende la idea). Me sorprendería mucho saber de un sistema como este donde el char no tiene exactamente 8 bits. (Por favor, corríjame si estoy equivocado)
  2. Dispositivos con sistemas operativos : esto incluye teléfonos inteligentes y dichos sistemas integrados. Si bien no me sorprendería mucho encontrar un sistema como este en el que el char leña sea más tham de 8 bits, no he oído hablar de uno hasta la fecha (de nuevo, infórmenme si no lo sé)
  3. Dispositivos de metal puro : videograbadoras, hornos de microondas, teléfonos celulares viejos, etc. En este campo no tengo la más mínima experiencia, así que aquí puede pasar cualquier cosa. Sin embargo, ¿realmente necesito que mi código sea multiplataforma entre mi escritorio de Windows y mi horno de microondas? ¿Es probable que alguna vez tenga un código común para ambos?

En pocas palabras: ¿hay plataformas comunes (más de% 0.001) (en las categorías 1 y 2 anteriores) donde char no es de 8 bits? ¿Y es verdad mi suposición anterior?


Normalmente puede suponer que los archivos tendrán bytes de 8 bits o, de no ser así, los archivos de 8 bits de bytes se pueden convertir a un formato nativo sin relleno mediante una herramienta de uso común. Pero es mucho más peligroso suponer que CHAR_BIT == 8. Actualmente ese es casi siempre el caso, pero puede que no siempre sea el caso en el futuro. El acceso de 8 bits a la memoria es cada vez más un cuello de botella.


Por ejemplo, muchos DSP tienen CHAR_BIT mayor o igual a 16.