INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Wieso immer int ?
10.06.2016, 20:34
Beitrag #1
Wieso immer int ?
Mir ist aufgefallen, da bei den meisten scetch int anstelle unsigned char verwendet wird, obwohl meistens die Werte innerhalb 0..255 sind.

Beispiele:
Pin Nummern.
Zähl-Variablen.

Am schlimmsten finde ich, wen man eine Array macht, echte Speicherverschwendung.

Da die meisten Arduinos einen 8Bit-AVR verwenden, ist dies doch in effizient, oder ?

Bei einem Programm, welches für den PC ist, ist dies etwas anderes, da die PC CPUSs 16Bit oder höher sind.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.06.2016, 21:25 (Dieser Beitrag wurde zuletzt bearbeitet: 10.06.2016 21:26 von Bitklopfer.)
Beitrag #2
RE: Wieso immer int ?
@Mathias,
da hast du vollkommen recht.
Ich verwende an der Stelle lieber den Typ byte dann weis ich was ich vor mir habe - oder andersrum argumentiert....back too the Nature....und zwar der vom uP...
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.06.2016, 12:42
Beitrag #3
RE: Wieso immer int ?
Ich denke das liegt daran, dass
1. sich viel zu wenige damit auseinander setzen.
2. bei vielen Programm genug Speicher noch frei ist (und es somit keinen interessier).
Wenn der Speicher knapp ist, muss man sich dann halt damit beschäftigen... Big Grin
Ich verwende am liebste "int8_t" (signed char), "uint8_t" (unsigned char), "int16_t" (signed short) usw.
Erkennt man schnell die Bit-Anzahl und ob signed oder unsigned Smile

mfg Scheams
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.06.2016, 16:33 (Dieser Beitrag wurde zuletzt bearbeitet: 11.06.2016 16:34 von Mathias.)
Beitrag #4
RE: Wieso immer int ?
Zitat:2. bei vielen Programm genug Speicher noch frei ist (und es somit keinen interessier).
Also reine Bequemlichkeit.


Betrifft nicht direkt den Arduino, aber was mir auch vielfach auffällt, das bei PC-Programmen sehr viel double anstelle float verwendet wird.
Bei den meisten Programm würde float locker reichen, und ist nebenbei auch um einiges schneller.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.06.2016, 21:22
Beitrag #5
RE: Wieso immer int ?
Ich glaube, der Geschwindigkeitsunterschied bei float und double Verarbeitung ist so gering am PC, dass er vernachlässigt werden kann. RAM ist auch normalerweise auch genug vorhanden. Also entscheidet man sich für Genauigkeit. Ich bin nicht ganz so am Programmieren am PC drinnen aber ich denke double-float kommt auf das Thema char-int (wie von dir gefragt worden ist) hin.
Bei Mikroprozessoren sollte man auf den RAM achten, weil ein double ja doppelt soviel Speicher wie float braucht.

mfg Scheams
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.06.2016, 07:20
Beitrag #6
RE: Wieso immer int ?
...und nicht vergessen das bei den 8Bit AVR zumindest bei der Arduino IDE double und float genau das Gleiche ist...siehe arduino.cc.
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.06.2016, 14:26
Beitrag #7
RE: Wieso immer int ?
Oh wusste ich garnicht. ... Gut zu wissen. Smile

mfg Scheams
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.06.2016, 17:23
Beitrag #8
RE: Wieso immer int ?
Irgendwie entspricht der float das Arduino nicht dem von C++

Wen ich hier gucke http://www2.informatik.uni-halle.de/lehre/c/c623.html , geht der float bis 3.4E38, baer der Arduino hat schon mit 12E20 Mühe.

Code:
Serial.println(12E20);

Hier kommt nur noch "ovf".
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Ausgabe druckt immer 2 Werte anstatt nur einen. Finde den Fehler nicht TimeMen 24 732 02.07.2016 14:18
Letzter Beitrag: hotsystems
  Display Blinkt immer arduino_weatherstation 29 1.618 12.03.2016 13:10
Letzter Beitrag: hotsystems
  Wieso schaltet das SS-Relais nicht ab? mat21his 5 565 28.01.2016 18:24
Letzter Beitrag: Bitklopfer
  Hexzahl immer mit 2 Zeichen ausgeben. arduinofan 11 785 12.01.2016 09:00
Letzter Beitrag: arduinofan
Question Blind wie immer???? :P Hilgi 4 554 09.11.2015 03:28
Letzter Beitrag: Hilgi
  bei Tastendruck Variable immer +1 matze.lingen 8 3.367 04.05.2015 13:45
Letzter Beitrag: SkobyMobil
Bug Due: seltsamer Compiler-error mit lib - sonst gings immer HaWe 1 727 27.04.2015 16:59
Letzter Beitrag: HaWe

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste