Frage : Größe der ganzer Zahl, in eingebettet

Hallo, habe ich eine einfache/stumme Frage, die eine nette Änderung von die Mörder ist, die, ich kürzlich gefragt habe.  

In eingebettete Programmierung, weiß ich, dass die Größe einer ganzen Zahl von Umwelt zu Umwelt ändern kann.  Jedoch verwirkliche ich, dass ich nicht, was die Größe einer ganzen Zahl feststellt, was es abhängt an wissen?  Ist es die CPU bildet/Modell oder der Compiler, oder ist es eine Kombination?  (Z.B., habe ich 4 Byteganze zahlen mit IAR/at91sam9261, würde ich haben 2 Bytes mit IAR und einem Mikro mit 8 Bits?)

Thanks für ein kurzes education.

Antwort : Größe der ganzer Zahl, in eingebettet

Warum sagten Sie „einfaches“ und „stummes“?

Ich habe die Antworten für Sie - viele Antworten. Hier sind sie:
     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

Nachdem ich die Antworten gelesen, abgebe ich meine Stellungnahme… e

Aber zuerst, denn Ihre Deutung ist ein Auszug von der Ausgabe c-Programmiersprache ANSI-2. durch K&R:
„int ist normalerweise die natürliche Größe für eine bestimmte Maschine. … Ist jeder Compiler frei, passende Größe für seine eigene Hardware, Thema nur O zu wählen, welches, die Beschränkung, die Kurzschlüsse und ints mindestens 16 Bits sind, sind mindestens 32 Bits sehnt, und kurz ist nicht mehr als int, der ist nicht mehr als lang.“

Meine Antwort…
Es ist der Compiler, nicht das OS, nicht die CPU, nicht das Gedächtnis, nicht das Brett.

Auf jeden Fall wenn Sie für die Größe interessieren, dann Sie sollte int nie verwenden. Ich sage selten nie. Dieses ist ein Fall. Es ist für einige einfache Fürschleife Kostenzähler OKAY. Sie können Ihre eigene user_types.h Akte definieren, die ein typedef für uint32, uint16, uint8, sint32, sint16 und sint8 tut; und falls zutreffend, uint24, uint64, sint24 und sint64. Dann, wie Sie von einem Prozessor auf andere umziehen, gerade #if definiert (PROCESSOR_NAME) um das typedef korrekt zu erhalten für diese Plattform. Ich bauen nicht auf 64-bitzahlarten zwar, da es möglicherweise nicht ein Äquivalent in Ihrem Compiler geben kann.
Weitere Lösungen  
 
programming4us programming4us