Come vengono memorizzate le variabili booleane in C#? Cioè, sono memorizzati come un byte e gli altri 7 bit sono sprecati o, nel caso degli array, sono raggruppati in blocchi di 1 byte di booleani?Dimensione booleana primitiva in C#
Questo risponde alla stessa domanda relativa a Java (Why is Java's boolean primitive size not defined?). Java e C# sono gli stessi a questo riguardo?
Un galleggiante? viene memorizzato come float e bool e anche in questo caso il bool ha 4 byte (float? accetta 8 byte contro 4 per un float). Forse allinea i bool a 4 byte in questo caso poiché è accoppiato con un float nell'array. – John
@ John, come hai misurato la dimensione di 'float?' Non riesco a usare 'sizeof' e' Marshal.SizeOf' restituisce 4. – Andrew
Ho creato un float? [] E un float []. Prima e dopo ogni passaggio, ho chiamato GC.GetTotalMemory(). Se chiami GC.Collect() un paio di volte prima della chiamata GetTotalMemory, vedrai la quantità effettiva di memoria consumata dall'allocazione, inclusi eventuali allineamenti, non solo la dimensione dell'elemento di dati stesso. – John