Simplemente coloque C y variantes (a diferencia de wuss java con su máquina virtual) el tamaño de los tipos primitivos en diferentes objetivos puede variar mucho, y realmente no hay garantía a menos que use los tipos de ancho fijo definidos en stdint.h
, e incluso entonces su implementación tiene que apoyarlos.¿sizeof devuelve la cantidad de bytes o el número de octetos de un tipo en C?
De todos modos hipotéticamente (porque en la mayoría de las máquinas modernas de un byte es un octeto, para tareas de red que asumen (ASCII)) no sizeof devolver el tamaño de un tipo de datos en bytes o en octetos?
bytes, pero un solo byte (representado como 'char') tiene' bits de CHAR_BITS'. Si quieres el número de octetos en una 'T', haz' sizeof (T) * CHAR_BITS/8'. En la mayoría de las plataformas, 'CHAR_BITS' es' 8'. – GManNickG
@GManNickG 'CHAR_BIT' (no hay S) :) – Praetorian
float octetPercent = sizeof (T) * CHAR_BIT /8.0; – awiebe