![]() |
Anzeige:
|
|
|||||||
| Anregungen & Bugreports Für Vorschläge an den Autor Roland und neue XProfan-Versionen |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 28.02.2011
Beiträge: 9
|
Hallo,
wäre es nicht sinnvoll, im Forum mal eine "Eventuellen Bug gefunden"-Rubrik einzurichten? Ich finde das folgende Posting ebenso wie mein vorheriges zu GetFDate$ bei "Anregungen" eigentlich etwas deplatziert. Gut wäre auch irgendwo eine Liste bereits von Benutzern gemeldeter Bugs für eine bestimmte Release, damit nicht immer wieder die selben Macken gemeldet werden. So, zumindestens das waren Anregungen Im folgenden Quelltext wird etwas demonstriert, worüber ich schon vor einiger Zeit gestolpert bin, was aber in Version 11.2a immer noch so abläuft. -------------------- 'Wohl so nicht beabsichtigter Effekt bei der Speicherung von Integervariablen mit negativem Vorzeichen in Objekten ---------------------------------- class Test = int%,longint&,Test@ proc Test.Test parameters i%,l& print "Test.Test: übergebene Parameter i% l&",i%,l& .int% = i% .longint& = l& print "Test.Test: Werte von .int% .longint& nach Zuweisung der Parameter",.int%,.longint& var li& = .int% print "Test.Test: an Longint übergebener int-Wert",li& endproc declare int% proc Test parameters i% int% = i% print "\nTest: übergebener Parameter i%",i% print "Test: Wert der Variablen int% nach Zuweisung des Parameters",int% waitkey endproc declare t# t# = new (Test,-10,-10) Test(-10) dispose t# waitkey end ------------------------------- Bildschirmausgabe bei mir: Test.Test: übergebene Parameter i% l& -10 -10 Test.Test: Werte von .int% .longint& nach Zuweisung der Parameter 65526 -10 Test.Test: an Longint übergebener int-Wert 65526 Test: übergebener Parameter i% -10 Test: Wert der Variablen int% nach Zuweisung des Parameters -10 Ja, mir ist bewußt, daß 65526 = 2**16 - 10 ist! Gruß Karl |
|
|
|
|
|
|
#2 (Direktlink) | |
|
Forenmaskottchen
![]() Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
|
Hallo Karl,
darf ich aus der Hilfe zu den Struktur/Klassen-Attributen mit % zitieren (in der Einführung zum Thema Strukturen): Zitat:
Roland
__________________
Pentium D 2,8 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon HD5450 1024 MB / Windows 7(32) - XProfan X2.0c AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 / Windows 7(64) - XProfan X2.0c http://www.xprofan.de |
|
|
|
|
|
|
#3 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 721
|
Ist aber sehr irreführend
Ein Variablentyp Word wäre hier logischer. Integer werden ja vor allem auch in einer zukünftigen 64-Bit Version wichtig, mal 32-bit mal 64-bit (gerade in Strukturen!). Ist also kein Bug, aber ein zu ändernder Zustand Vor allem sind Integer ja auch der Typ für Controls usw., wer seinen Code also schon jetzt auf 64-Bit vorbereiten möchte, nimmt doch besser Integer für Handle, Objekte und Pointer.
__________________
Gruß Thomas Wenn mir früher jemand gesagt hätte, ich würde freiwillig eine Wanze mit mir herum tragen und sie auch noch selbst aufladen, hätte ich laut gelacht. Heute habe ich ein Smartphone. http://realsource.de |
|
|
|
|
|
#4 (Direktlink) | |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.090
|
Ja, die Größe einer Integer-Zahl richtet sich nach der Bitzahl des ausführenden Systems.
Word = 16 Bit, Long = 32 Bit, Quad = 64 Bit. Aber Integer (INT16/INT32/INT64) = 16 oder 32 oder 64 Bit, je nachdem, auf welchem System das Programm läuft. Die verschiedenen Windows-Datentypen sind hier aufgelistet: http://msdn.microsoft.com/de-de/libr...=vs.85%29.aspx Zitat:
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. Geändert von Frabbing (07.03.2011 um 18:41 Uhr) |
|
|
|
|
|
|
#5 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
|
Ja, der Begriff "Integer" ist hier in der Tat verwirrend, um einen vorzeichenlosen 16-Bit-Wert zu bezeichnen. Hier sollte ich die Hilfe anpassen, und von Word sprechen. Das Attribut einer Struktur/Klasse mit dem % am Ende ist nun mal ein vorzeichenloser 16-Bit-Wert.
Das Ganze ist nicht zu verwechseln mit dem Variablentyp Integer, der beim 32Bit-XProfan natürlich ein vorzeichenbehafteter 32-Bit-Wert ist. Gruß Roland
__________________
Pentium D 2,8 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon HD5450 1024 MB / Windows 7(32) - XProfan X2.0c AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 / Windows 7(64) - XProfan X2.0c http://www.xprofan.de |
|
|
|
|
|
|
#6 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 721
|
Ein Integer-Typ für Strukturen sollte aber trotz allem eingeführt werden,
bevor es eine 64-Bit Version gibt. Man kann zwar zur Zeit Long nehmen, aber dann muss man später alles umschreiben. Also mehr als Vorbereitung
__________________
Gruß Thomas Wenn mir früher jemand gesagt hätte, ich würde freiwillig eine Wanze mit mir herum tragen und sie auch noch selbst aufladen, hätte ich laut gelacht. Heute habe ich ein Smartphone. http://realsource.de |
|
|
|
|
|
#7 (Direktlink) | |
|
Erfolgreich angemeldet
![]() Registriert seit: 28.02.2011
Beiträge: 9
|
Hallo Roland,
Zitat:
Vorher ging ich einfach davon aus, daß "%" verläßlich ein Kennzeichen für "Integervariablen werden, wie in BASIC üblich, durch ein % als Postfix gekennzeichnet. Integervariablen können in einem 32-Bit-System die gleichen Werte wie Longint-Variablen haben: von etwa -2 Mrd. bis etwas über +2 Mrd. " also einen vorzeichenbehafteten Ganzzahltyp mit systemabhängiger Länge ist. Ich habe kein Problem damit, Integers mit eventuell auch negativen Werten in Objekten in longints abzulegen, wäre aber sehr dafür, genau ein Postfix für einen Typen zu verwenden. Spricht etwas dagegen, den "unsigned shortint" in Objekten z.B. ein "^" als Kennzeichen anzuhängen und den Compiler meckern zu lassen, wenn eine Variable mit %-Endung in der Klassendefinition auftaucht? Gruß Karl |
|
|
|
|
|
|
#8 (Direktlink) | |
|
Forenmaskottchen
![]() Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
|
Zitat:
Auch die anderen Postfixe, bis auf das &, haben bei Struktur-Attributen andere Bedeutungen als bei Variablen. In Srukturen gibt es keine Attribute mit variabler Länge. Gruß Roland
__________________
Pentium D 2,8 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon HD5450 1024 MB / Windows 7(32) - XProfan X2.0c AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 / Windows 7(64) - XProfan X2.0c http://www.xprofan.de |
|
|
|
|
|
|
#9 (Direktlink) | |
|
Forenmaskottchen
![]() Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
|
Zitat:
Gruß Roland
__________________
Pentium D 2,8 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon HD5450 1024 MB / Windows 7(32) - XProfan X2.0c AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 / Windows 7(64) - XProfan X2.0c http://www.xprofan.de |
|
|
|
|
|
|
#10 (Direktlink) | |
|
Forenmaskottchen
![]() Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 721
|
Zitat:
Code:
Struct Kunde = Name$(40),Strasse$(40),Ort$(40),Umsatz&,Status%
Struct Kunde = Name(40) As String, \
Strasse(40) As String, \
Umsatz As Long, \
Status As Word
ist auch eine häufig anzustreffende Syntax.
__________________
Gruß Thomas Wenn mir früher jemand gesagt hätte, ich würde freiwillig eine Wanze mit mir herum tragen und sie auch noch selbst aufladen, hätte ich laut gelacht. Heute habe ich ein Smartphone. http://realsource.de |
|
|
|
|
|
|
|
#11 (Direktlink) | |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.090
|
Zitat:
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| 64-Bit little-endian Integer-Wert | ELeX | PHP/MySQL | 0 | 28.05.2007 03:24 |
| Verkette Liste mit Objekten. | Der Gast | C/C++, Visual C++, Visual C++.NET | 2 | 30.11.2005 18:33 |
| Problem beim Speichern | maccus2002 | Software - Allgemein | 4 | 17.10.2005 02:03 |
| run time error R6003 - integer divide by 0 | Lausbua | Windows 95/98/ME/2000/NT | 3 | 19.05.2005 00:00 |
| Bilder als .jpg speichern beim IE 6.0 | jk124 | Office-Anwendungen | 2 | 09.02.2004 20:22 |