Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Di Mai 07, 2024 07:00

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: UInt32 - 1
BeitragVerfasst: Do Jul 04, 2013 13:28 
Offline
Compliance Officer
Benutzeravatar

Registriert: So Aug 08, 2010 08:37
Beiträge: 460
Programmiersprache: C / C++ / Lua
Hi,

nächstes Problem:

Code:
  1.  
  2. #define SDL_TOUCH_MOUSEID ((Uint32)-1)
  3.  


Wie soll ich das in Pascal schreiben?

Code:
  1.  
  2. const
  3.   SDL_TOUCH_MOUSEID = UInt32 - 1;
  4.  


Klappt nicht...

_________________
offizieller DGL Compliance Beauftragter
Never run a changing system! (oder so)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: UInt32 - 1
BeitragVerfasst: Do Jul 04, 2013 14:03 
Offline
DGL Member
Benutzeravatar

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 networkmy 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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: UInt32 - 1
BeitragVerfasst: Do Jul 04, 2013 14:19 
Offline
Compliance Officer
Benutzeravatar

Registriert: So Aug 08, 2010 08:37
Beiträge: 460
Programmiersprache: C / C++ / Lua
Ok, danke :D

_________________
offizieller DGL Compliance Beauftragter
Never run a changing system! (oder so)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: UInt32 - 1
BeitragVerfasst: Do Jul 04, 2013 17:29 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Sicher das du QWord meinst? QWord sind 64bit. DWord sind 32bit.

_________________
Aktuelle Projekte: BumpMapGenerator, Massive Universe Online
Auf meiner Homepage gibt auch noch paar Projekte und Infos von mir.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: UInt32 - 1
BeitragVerfasst: Do Jul 04, 2013 18:45 
Offline
Compliance Officer
Benutzeravatar

Registriert: So Aug 08, 2010 08:37
Beiträge: 460
Programmiersprache: C / C++ / Lua
Also ich hab einfach UInt32(-1) geschrieben - und UInt32 hab ich als Cardinal deklariert, sollte also alles korrekt sein.

_________________
offizieller DGL Compliance Beauftragter
Never run a changing system! (oder so)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: UInt32 - 1
BeitragVerfasst: Do Jul 04, 2013 21:51 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2067
Programmiersprache: C++
Wäre an der Stelle nicht der Wert für das Maximum des UInt32 besser als das über einen Typecast zu erzeugen?
Da weiß man direkt was man hat.

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: UInt32 - 1
BeitragVerfasst: Fr Jul 05, 2013 12:08 
Offline
DGL Member
Benutzeravatar

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 networkmy 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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: UInt32 - 1
BeitragVerfasst: So Jul 07, 2013 09:09 
Offline
DGL Member
Benutzeravatar

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:
  1. ...
  2.         namespace Types
  3.         {
  4.             /// A UInt32 have always the size of 4 byte and represent a unsigned number.
  5.             typedef unsigned long UInt32;
  6.  
  7.             /// The minimum value which can be contained by a UInt32.
  8.             extern const UInt32 UInt32Min;
  9.  
  10.             /// The maximum value which can be contained by a UInt32.
  11.             extern const UInt32 UInt32Max;
  12.         }


Code:
  1. #include "RadonFramework/precompiled.hpp"
  2. #include "RadonFramework/Core/Types/UInt32.hpp"
  3.  
  4. const RadonFramework::Core::Types::UInt32 RadonFramework::Core::Types::UInt32Min=0;
  5. const RadonFramework::Core::Types::UInt32 RadonFramework::Core::Types::UInt32Max=4294967295;


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

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: UInt32 - 1
BeitragVerfasst: Mo Jul 08, 2013 07:58 
Offline
DGL Member
Benutzeravatar

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 networkmy 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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: UInt32 - 1
BeitragVerfasst: Mo Jul 08, 2013 08:58 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2621
Wohnort: Berlin
Programmiersprache: Go, C/C++
Die sind erst mit C++11 Standard rein gekommen, wenn man c macht kennt man die schon länger aber in C++ sind die noch beim ausrollen.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.041s | 19 Queries | GZIP : On ]