Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Das ist ein Typecast, also äquivalent zu QWord(-1) in FreePascal.
grüße
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Stimmt, Bergmann, war mein Fehler.
i0n0s: Ja, stimmt. In C machen viele das nicht. Ich weiß auch nicht warum, meine Vermutung ist, dass sie stdint.h nicht kennen.
grüße
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2621 Wohnort: Berlin
Programmiersprache: Go, C/C++
Unter C++ und C ist es eher Praxis, dass man für die std typen Maximum und Minimum und für nicht definierte typen, wie int, legt man ein eigenen typen an und verwendet dessen min und max. http://en.cppreference.com/w/cpp/language/types Da sieht man ganz gut, die Problematik mit Konstanten.
Das einzig wahre Problem bei dem Typen ist das float und double, denn zwischen den Compilern und Binarycode kann die FPU unterschiedlich angesteuert werden(exceptions an/aus, precision/fast mode und rounding behaviour).
UInt32 ist ein Typ einer bestimmten Notation, welches sicher stellt, dass es nicht missverständnisse zwischen Programmierer und Machine gibt. .Net benutzten diese z.B. statt der normalen typen, die mit C++, C# und J# kommen, um dieser ganzen Problematik zu entgehen.
Ich mach das in Radon Framework auch so und da sieht es dann wie folgt aus.
Code:
...
namespace Types
{
/// A UInt32 have always the size of 4 byte and represent a unsigned number.
typedefunsignedlong UInt32;
/// The minimum value which can be contained by a UInt32.
externconst UInt32 UInt32Min;
/// The maximum value which can be contained by a UInt32.
Wenn man mehrere Platformen supported, dann sollte man anfangen die Typen auf unterschiedliche Basistypen zu mappen, je nach System. Ich verwende z.B. long für Int32, was auf 64Bit Unix Systemen aber 64Bit wäre und damit dort int verwendet.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Was ich an der ganzen story nicht verstehe, warum die leute nicht einfach (zumindest für neuen Code) stdint.h bzw. cstdint nehmen…
grüße
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Mitglieder in diesem Forum: 0 Mitglieder und 18 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.