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.
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.
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.
Zeiger auf Variable übergeben und Variablentyp als zusätzlicher Parameter beim Aufruf der Funktion ?
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?
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.