Fråga : Storleksanpassa av heltal, i inbäddat

Hi jag har ett enkelt/dumt att ifrågasätta, som är en trevlig ändring från mördarna som, jag har frågat sent.  inbäddat programmera för

In, jag vet att storleksanpassa av ett heltal kan ändra från miljö till miljön.  Emellertid jag realiserar att mig inte vet vad bestämmer storleksanpassa av ett heltal, vad det beror på?  Är det CPUen gör/för att modellera, eller kompilatorn, eller är det en kombination?  (Till exempel, jag har 4 byteheltal med IAR/at91sam9261 som skulle jag, har 2 byte med IAR, och 8 bet microen?),

Thanks för en resumé education.

" klar "

Svar : Storleksanpassa av heltal, i inbäddat

Why du ”den enkla” något att säga och ”förstummade”?

Jag har svaren för dig - många svar. Här de är:
     http://webcache.googleusercontent.com/search?q=cache:xv771GQfYxIJ:www.allinterview.com/showanswers/32404.html+C+what+determines+size+of+int&cd=4&hl=en&ct=clnk&gl=us

Ge min åsikt…, efter läsning svaren, mig ska,

Men först, for din tolkning är ett utdrag från för språkANSI 2nd för C den programmera upplagan vid K&R:
”int som normalt ska, är det naturligt storleksanpassar för en detalj bearbetar med maskin. … Varje kompilator är fri att välja anslår storleksanpassar för dess egna maskinvara, betvingar endast nolla som begränsningen, som kort stavelse och ints är åtminstone 16 bitar, longs är åtminstone 32 bitar, och kort stavelse är ej längre än int, som är ej längre än long.”,

Mitt svar…,
Det är kompilatorn, inte OSet, inte CPUen, inte minnet, inte stiga ombord.

I något fall, om du att bry sig om storleksanpassa, då dig bör aldrig använda int. Sällan något att säga I aldrig. Detta är ett fall. Det är REKO för något enkelt för-kretsar kontrar. Du kan definiera din egna user_types.h sparar som gör en typedef för uint32, uint16, uint8, sint32, sint16 och sint8; och om tillämpbart, uint24, uint64, sint24 och sint64. Därefter som dig flyttning från en processor till another, precis #if som definieras (PROCESSOR_NAME) för att få typedefen korrekt för den plattform. Jag skulle för att inte rely på 64 bet heltaltyper though, sedan det inte kan finnas en motsvarighet i din kompilator.
Andra lösningar  
 
programming4us programming4us