fragen zum cast in C

OP #6776879
Lesenswert?
• ▲
▼
Guten morgen,
ich habe mal eine frage zum casten von Variablen in C.
1
#define OFFSET 500u
2

3
uint16_t var = 65500u;
4

5
uint16_t res1;
6
uint16_t res2;
7

8
res1 = var + OFFSET;
9
res2 = (uint16)(var + OFFSET);

bei res2 bekomme ich 465 heraus. Bei res1 bekomme ich 66000 heraus.
ist res1 dann automatisch auf uint32 gecastet worden? welchen typ hat 
var dann nach dieser berechnung?
Gast #6776946
Lesenswert?
• ▲
▼
1
#include <stdint.h>
2

3
#define OFFSET 500u
4

5
int main() {
6
  uint16_t var = 65500u;
7
  uint16_t res1;
8
  uint16_t res2;
9

10
  res1 = var + OFFSET;
11
  res2 = (uint16_t)(var + OFFSET);
12

13
  return 0;
14
}

Ich bekomme 464 für beide Variablen im Debugger.
#6776955
Lesenswert?
• ▲
▼
>res2 = (uint16)(var + OFFSET);

uint16 soll wohl uint16_t sein, oder?
Ich empfehle immer den Originalcode zu kopieren und nicht neu zu tippen.
Fehler im Originalcode werden beim Abtippen entweder übersehen oder neue 
werden eingebaut.

Der wichtigste Fehler liegt also zuerst mal in der Diskrepanz zwischen 
Originalcode und Fragebeitrag.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.