mikrocontroller.net

Forum: Compiler & IDEs Beliebige Gabzzahl an Funktion übergeben


Autor: Chrisi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
wie bekomme ich es denn hin, das einer funktion eine beliebige Ganzzahl 
übergeben werden kann.
Ich habe eine Funktion void test(long int j){,,,}, die Variable j ist 
aber mal eine char, mal ein short int, vielleicht sogar mal ein long 
long.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Fragestellung ist etwas vage.

Ansonsten: Die Funktion nimmt als Datentype den größten Datentyp, der 
möglich ist (und der ev. noch sinnvoll ist). Alles andere ist dann Sache 
des Aufrufers.

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Ganzzahl-Datentypen sind alle abwärtskompatibel, sie belegen nur 
mehr Speicher, wodurch natürlich dann auch die Rechenoperationen 
langsamer werden (zumindest wenn du mit einer X-Bit Maschine einen >X 
Bit Wert berechnest). Einige CPUs haben aber auch extra Befehle für 
solche zwecke. Aktuelle CPUs können glaub ich auch 64 und 128 Bit Werte 
in einem Takt berechnen (MMX). Falls es eine Zeitkritische Funktion ist, 
solltest du also innerhalb der Funktion je nach tatsächlicher größe den 
Datentyp ggf. auf einen kleineren Casten.

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zeiger auf Variable übergeben und Variablentyp als zusätzlicher 
Parameter beim Aufruf der Funktion ?

Autor: tuppes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Sprache, C oder C++?

Und spielt es innerhalb der Funktion eine Rolle, welchen Typ der 
Parameter außerhalb hatte? Oder muss nur der Wert richtig rein in die 
Funktion?

Autor: Chrisi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antworten,
ich definier es so void test(long i), da es nicht größer wird als long 
nur kleiner und die ganze Sache auch nicht zeitkritisch ist.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.