Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

S4My

unregistriert

51

10.06.2012, 14:09

Ja, da bleibt mir bei einer solch freudigen Einstellung nur zu sagen: es zwingt dich Keiner, also wenn eure Lordschaft dieses Thema für so trivial hält so könne sie sich doch einfach nicht damit befassen. Es gibt nichts sinnloseres als zu schreiben "ich verschwende meine Zeit", da du es bist der zu entscheiden hat was er damit anfängt...

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

52

10.06.2012, 14:12

Was dann das Thema hier betrifft:

C-/C++-Quelltext

1
typedef short int16

Das war ja noch nicht alles, man könnte ja genauso gut auch folgendes deklarieren:

C-/C++-Quelltext

1
typedef long int32

Der Gedanke, oder zumindest mein Gedanke dahinter war, dass man so zwar noch immer nicht garantieren kann, dass ich nun wirklich Integer der Größe 16 und 32 Bit verwende, jedoch genauer schätzen kann in welche Richtung das ganze gehen wird.

Wieso? Nur weil du jetzt einen anderen Namen für short und long hast, gibt es absolut Nichts was du nun "besser abschätzen" könntest, als wenn du einfach direkt short und long verwenden würdest. Mir ist ehrlich gesagt überhaupt nicht klar was genau du eigentlich die ganze Zeit hier "abschätzen" willst.

Wie ich bereits geschrieben habe ist es allgemein ja so:

char <= short <= int <= long

Ja

Für mich erschließt sich daraus, sofern man davon ausgeht das der kleinste Datentyp immer noch 8 Bit besitzt [...]

Selbst das ist nicht garantiert, aber heutzutage zumindest eine relativ sichere Annahme.

[...] da ja selbst bool welcher im Prinzip nur 1 Bit bräuchte 8 Bit besitzt [...]

Wo steht das?

[...] dass ich mit der Verwendung des oben definierten Typs int16 mindestens die Zahl 125, wenn ich das ganze unsigned mache 255, speichern kann.

Du kannst in oben definiertem Typ mindestens die Zahlen -32767 bis 32767 speichern. Davon könntest du auch genauso ausgehen, wenn du einfach direkt short verwenden würdest.

Gleichermaßen kann ich durch int32 davon ausgehen den größt möglichen Typ zu verwenden.

Das könntest du auch, wenn du einfach direkt long verwenden würdest.


Verwende ich normale Integer so gibt es weitaus mehr Richtungen: Der Rechner könnte dafür sorgen das diese Variable der short gleicht, aus dem ergibt sich das Integer klein wenn nicht sogar der kleinste Datentyp ist [...]

Ja, das könnte passieren. Dann wären char und short allerdings gleich groß wie int.

[...], also möglicherweise nur 8 Bit speichern kann.

Nein, das kann nicht passieren. Ein int ist garantiert mindestens 16bit groß.

Auf der anderen Seite könnte int dem in der Liste größten Datentyp gleichen, was wiederum heißt ich könnte viel mehr speichern als eigentlich vorgesehen. Je nach dem was nun zutrifft kann es zu Fehlern kommen.

Und was genau ist das Problem? Was für Fehler!?

Für mich ist das ganze auch hilfreich was Portabilität angeht. Gibt man diesen Begriff bei Google ein so erhält man als erstes eine Wikipediaverzweigung, die gleich zu Anfang die Plattformunabhängigkeit verlinkt. Nun ist es, wie oben schon niedergeschrieben, leichter Datentypen welche nicht der Architektur des Rechners entsprechen sollen einzuschätzen. Zumindest sehe ich das so.

Du kannst die normalen Datentypen alle "einschätzen", die Mindestgrenzen sind vom Standard garantiert.

Jetzt noch die Wiederverwendung gewisser Programmabschnitte. Für mich ist es so, ein Programm soll seinen Zweck so gut wie möglich erfüllen und nicht in gewissen Dingen Kompromisse eingehen weil ich möglicherweise Code später wiederverwenden möchte. Wenn das dann der Fall ist, so sollte ich sowieso noch einmal durch den Quelltext gehen und sehen ob alles wirklich stimmt, es sei den dieser besondere Code wurde von Anfang an schon so geschrieben, dass er auch wirklich überall einsetzbar ist.

Was genau bringt dich auf die Idee, dass Code, der davon abhängig ist wie viele Bit ein int exakt hat, portabler ist, als Code ohne diese Abhängigkeit?

Naja, das sind zumindest meine Ansichten. Von irgendwelchen Optimierungen will ich hier nicht reden, das ist ja auch nicht der Sinn dahinter, es geht mir nur um die bessere "Kontrolle" über meinen Programmcode.

Und mir ist immer noch nicht klar wofür du diese "Kontrolle" meinst zu brauchen.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »dot« (10.06.2012, 14:17)


S4My

unregistriert

53

10.06.2012, 14:14

Naja, das soll Prinzipiell heißen es gibt wirklich keinen Sinn für short und long. Gut, stört mich auch recht wenig...aber hier ist für mich Schluss

Ich denke ich werde, sofern das alles so richtig ist, in Zukunft Integer verwenden.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

54

10.06.2012, 14:16

Naja, das soll Prinzipiell heißen es gibt wirklich keinen Sinn für short und long.

Nein, soll es nicht. Soll nur heißen, dass ich die von dir angeführten Gründe nicht nachvollziehen kann.

S4My

unregistriert

55

10.06.2012, 14:21

Ja, ok. Aber könntest du mir auf der anderen Seite Gründe nennen? Ich meine ich will hier nicht irgendwie versuchen etwas sinnlosem Sinn zu verleihen auch wenn es den Anschein haben mag, ich versuche nur Gründe für short und long zu finden. Anscheinend greift man nämlich lieber zu Integern und stellt sich auf die Seite der Befürworter weil man einfach nicht darüber diskutieren möchte ob es nicht doch anders geht...

Schrompf

Alter Hase

Beiträge: 1 470

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

56

10.06.2012, 14:22

Zitat


Ich kann's nicht glauben, dass ich zu solchem Unsinn tatsächlich meine Zeit mit schreiben verschwende.

Hättest es ja lassen können. :)


Da zumindest hast Du Recht. Mich überkommt nur manchmal der Drang, etwas richtig zu stellen. Und je gröber der Mist vorneweg, desto explosiver dann mein Text. Ist eine ungesunde Einstellung. Aber ich arbeite daran :thumbsup:
Häuptling von Dreamworlds. Baut aktuell an nichts konkretem, weil das Vollzeitangestelltenverhältnis ihn fest im Griff hat. Baut daneben nur noch sehr selten an der Open Asset Import Library mit.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

57

10.06.2012, 14:23

Ein Grund für short wäre z.B. wenn ich eben die Daten möglichst kompakt halten muss, long wenn ich den entsprechend garantierten Wertebereich brauche, unsigned wenn ich mich mit Bitoperationen austoben will...

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »dot« (10.06.2012, 14:32)


Architekt

Community-Fossil

  • »Architekt« ist der Autor dieses Themas

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

58

10.06.2012, 14:24

Zitat


Ich kann's nicht glauben, dass ich zu solchem Unsinn tatsächlich meine Zeit mit schreiben verschwende.

Hättest es ja lassen können. :)


Da zumindest hast Du Recht. Mich überkommt nur manchmal der Drang, etwas richtig zu stellen. Und je gröber der Mist vorneweg, desto explosiver dann mein Text. Ist eine ungesunde Einstellung.


Ohja, nicht nur ungesund. ;)
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

S4My

unregistriert

59

10.06.2012, 14:24

Zitat

Aber ich arbeite daran :thumbsup:
Dann tut mir meine Bemerkung leid...naja...

Das mit dem bool habe ich gelesen und selbst getestet. Eigentlich wird nur wahr oder falsch, Null oder Eins, wiedergegeben, dennoch gibt sizeof() eine 1, also 1 Byte == 8 Bit, zurück.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »S4My« (10.06.2012, 15:02)


S4My

unregistriert

60

10.06.2012, 14:58

Nun, man kann also abschließend sagen, es ist sinnvoller Integer zu verwenden, da sie sich an die Architektur des jeweiligen Rechners anpassen und so schnelleren Zugriff ermöglichen, bis auf einige Ausnahmefälle.
Oder möchte jemand zu dieser Aussage etwas hinzufügen?

Mlg
S4My

Werbeanzeige