AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Boolean-Results jetzt initialisiert?

Ein Thema von himitsu · begonnen am 2. Jun 2024 · letzter Beitrag vom 2. Jun 2024
Antwort Antwort
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#1

Boolean-Results jetzt initialisiert?

  Alt 2. Jun 2024, 16:36
Delphi-Version: 12 Athens
Mir war so, als wenn ich mehrmals gelesen hatte, dass Boolean-Result jetzt immer mit False initialisiert seien.

Für Win32 ist es definitiv nicht der Fall,
aber kann sein, dass es nur Win64 betraf.

Unter Win64 scheint das auch wirklich der Fall zu sein.
Delphi-Quellcode:
function Test: Boolean;
begin
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  if Test then
    Beep;
end;
Aber ich erkenne hier nicht, dass irgendwo BYTE[rbp+$0f] mit 0 initialisiert wird.
Delphi-Quellcode:
Unit1.pas.26: begin
00000000008E77C0 55 push rbp
00000000008E77C1 4883EC10 sub rsp,$10
00000000008E77C5 488BEC mov rbp,rsp
Unit1.pas.27: end;
00000000008E77C8 480FB6450F movzx rax,byte ptr [rbp+$0f]
00000000008E77CD 488D6510 lea rsp,[rbp+$10]
00000000008E77D1 5D pop rbp
00000000008E77D2 C3 ret
In Win32 steckt auch der 1Byte-Boolean auch immer nur im AL,
während dieses Byte im Win64 auf das komplette RAX erweitert wird und "zufällig" bisher überall 0 bzw. False ergab, wenn es vergessen wurde zu setzen.

Sowohl in Win32 und Win64 meckert aber der Compiler immernoch rum.
Zitat:
[dcc64 Warnung] Unit1.pas(27): W1035 Rückgabewert der Funktion 'Test' könnte undefiniert sein
Und da es in Win32 definitiv nicht der Fall ist, würde ich so oder so nicht von ausgehen, dass es wirklich immer False ist.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 2. Jun 2024 um 16:38 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Boolean-Results jetzt initialisiert?

  Alt 2. Jun 2024, 17:49
Ich habe bisher nicht gelesen, dass sich da etwas geändert hätte.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#3

AW: Boolean-Results jetzt initialisiert?

  Alt 2. Jun 2024, 19:07
War schon in D11 oder gar 10, wo ich glaube es gelesen zu haben, entweder hier oder/und im Jira.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Boolean-Results jetzt initialisiert?

  Alt 2. Jun 2024, 19:32
Ich kann mich auch an nichts dergleichen erinnern, und ich wäre auch stark erstaunt, wenn man an so fundamentalen Bestandteilen der Sprache plötzlich etwas ändern sollte.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#5

AW: Boolean-Results jetzt initialisiert?

  Alt 2. Jun 2024, 23:04
Ich würde auch nicht den Sinn darin verstehen warum man das nur für Boolean einbauen sollte.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#6

AW: Boolean-Results jetzt initialisiert?

  Alt 2. Jun 2024, 23:51
Drum wollte ich nochmal fragen.
Find's nicht mehr.

Ich glaub irgendwo war wem dieses Verhalten aufgefallen und dann dann hatten mehrere es bestätigt, oder irgendwie so.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz