Forum: Compiler & IDEs Länge von short und int


von Matthias (Gast)


Lesenswert?

Hallo Leute

Weiß jemand von euch so auf die schnelle wie viele Bits beim
AVR-GCC-compiler in einem int und in einem short stecken?

Danke

von Dominik T. (dom) Benutzerseite


Lesenswert?

Warum nimmst du nicht die Datentypen uint8_t, uint16_t und uint32_t ??

von Matthias (Gast)


Lesenswert?

ich verwende schon existierenden c-code und möcht nicht alles
umschreiben

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

.

  printf("int ist %d Bits groß, short ist %d Bits groß\n",
    sizeof (int) * 8, sizeof (short) * 8);

von Matthias (Gast)


Lesenswert?

ich wüsste nicht wie mein atmel das verstehen soll

von Karl H. (kbuchegg)


Lesenswert?

Wie er was verstehen soll?

sizeof ist Standard-C und dient genau dazu, Dir
Deine Frage zu beantworten.

von Matthias (Gast)


Lesenswert?

und wo soll er mir das ausgeben, ich hab KEINEN monitor angeschlossen

von Reiner (Gast)


Lesenswert?

Das Directory
winavr\avr\include offenbart da viele Geheimnisse!  Lädt richtig zum
Stöbern ein. stdint.h ist ein richtiger heisser Platz ):-

Reiner

von Karl H. (kbuchegg)


Lesenswert?

> und wo soll er mir das ausgeben, ich hab KEINEN monitor
> angeschlossen

Dann sei ein bißchen kreativ. Irgendeine Form der
Ausgabe wirst Du ja wohl haben. Und sei es nur ein einzelnes
lausiges Port Bit irgendwo :-)
soooooviele Moeglichkeiten gibts ja dann auch wieder nicht.

   if( sizeof(int) == 4 )
     Schalte Led ein oder lass Motor laufen oder ...
   else
     tu es eben nicht

Wenns nicht 4 war, dann probier halt mal 2 oder 8
und in 15 Sekunden hast Du Dir Deine Frage beantwortet.

von peter dannegger (Gast)


Lesenswert?

@Karl Heinz,

völlig richtig.
Man muß nicht drauf warten, daß einem die gebratenen Tauben in den Mund
fliegen.


Man könnte z.B. auch:

PORTA = sizeof(short);
PORTB = sizeof(int);

schreiben und einfach ins Assemblerlisting reinschauen.


Es schadet grundsätzlich keinem C-Programmierer, mal einen Blick aufs
Assemblerlisting geworfen zu haben, ganz im Gegenteil.
Und außer bei switch-Anweisungen gelingt es dem AVR-GCC fast immer, die
C-Zeile direkt über den daraus erzeugten Assembler zu schreiben.


Peter

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.