AGB  ·  Datenschutz  ·  Impressum  







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

Die größer Zahl nehmen ?

Ein Thema von thomas2009 · begonnen am 9. Feb 2009 · letzter Beitrag vom 10. Feb 2009
Antwort Antwort
Seite 2 von 3     12 3      
Laufi

Registriert seit: 21. Mär 2006
86 Beiträge
 
#11

Re: Die größer Zahl nehmen ?

  Alt 9. Feb 2009, 23:10
Hallo!

Wenn Du es ganz krass machen willst kannst du es auch so machan

Delphi-Quellcode:
function Max(const A, B: Integer): Integer;
asm
  CMP EAX, EDX;
  CMOVL EAX, EDX;
end;
Liebe Grüsse Laufi
  Mit Zitat antworten Zitat
globetrotter77

Registriert seit: 16. Jan 2009
Ort: Nürnberg
236 Beiträge
 
Delphi 10.3 Rio
 
#12

Re: Die größer Zahl nehmen ?

  Alt 9. Feb 2009, 23:19
@Laufi:

wenn schon, dann
Delphi-Quellcode:
type irgendwas = Integer;
     nochmalwas = irgendwas;
function tu_mal_was_von_alleine_und_frag_nicht_lange_nach_dem_sinn_von_dem_ganzen((const kleine_oder_grosse_zahl, grosse_oder_kleine_zahl: irgendwas): nochmalwas;
  Mit Zitat antworten Zitat
Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#13

Re: Die größer Zahl nehmen ?

  Alt 9. Feb 2009, 23:21
Zitat:
Delphi-Quellcode:
function Max(const A, B: Integer): Integer;
begin
  if A > B then
    Result := A
  else
    Result := B;
end;
[OFFTOPIC]Warum ist hier eigentlich das const sinnvoll? Übergibt man die Zahlen direkt sind sie je 4 Bytes groß, ein Pointer der zusätzlich noch dereferenziert werden muss, ist das je auch. Theoretisch ist das doch unnötiger zusätzlicher Aufwand - ja klar es ist nicht wirklich spürbar und zudem, trotzdem die selbe Anzahl Opcodes (vermutlich, ungetestet), allerdings müsste ja ein direkter Wert (in meiner Logik) dennoch schneller sein als dereferenzieren? Und natürlich gibt es auch noch den schlichten Punkt, dass ein const Programmierfehler verhindern kann.
Man kann einen Barbier definieren als einen, der alle diejenigen rasiert, und nur diejenigen, die sich nicht selbst rasieren.
Rasiert sich der Barbier?
  Mit Zitat antworten Zitat
Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#14

Re: Die größer Zahl nehmen ?

  Alt 9. Feb 2009, 23:23
Zitat von Laufi:
Hallo!

Wenn Du es ganz krass machen willst kannst du es auch so machan

Delphi-Quellcode:
function Max(const A, B: Integer): Integer;
asm
  CMP EAX, EDX;
  CMOVL EAX, EDX;
end;
Liebe Grüsse Laufi
Vergleichst du hier nicht Adressen?
Man kann einen Barbier definieren als einen, der alle diejenigen rasiert, und nur diejenigen, die sich nicht selbst rasieren.
Rasiert sich der Barbier?
  Mit Zitat antworten Zitat
Laufi

Registriert seit: 21. Mär 2006
86 Beiträge
 
#15

Re: Die größer Zahl nehmen ?

  Alt 9. Feb 2009, 23:27
Du meinst wegen dem const? Nein das ist ihm gleich bei den kleinen typen
  Mit Zitat antworten Zitat
globetrotter77

Registriert seit: 16. Jan 2009
Ort: Nürnberg
236 Beiträge
 
Delphi 10.3 Rio
 
#16

Re: Die größer Zahl nehmen ?

  Alt 9. Feb 2009, 23:28
Zitat:
Warum ist hier eigentlich das const sinnvoll?
Ist mir auch nicht ganz klar, und ich würde es auch nicht machen.
Die Online-Hilfe ist in solchen Fällen leider gar nicht mehr hilfreich.
  Mit Zitat antworten Zitat
Laufi

Registriert seit: 21. Mär 2006
86 Beiträge
 
#17

Re: Die größer Zahl nehmen ?

  Alt 9. Feb 2009, 23:32
Er übergibt nur bei grossen typen die adresse wenn man const schreibt, er ist ja nicht dumm! Das const macht also nichts langsamer es ist nur zur schutz für den Programmierer
  Mit Zitat antworten Zitat
Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#18

Re: Die größer Zahl nehmen ?

  Alt 9. Feb 2009, 23:35
Zitat von Laufi:
Er übergibt nur bei grossen typen die adresse wenn man const schreibt, er ist ja nicht dumm! Das const macht also nichts langsamer es ist nur zur schutz für den Programmierer
Hmm, das macht dann natürlich mehr Sinn (auch wenn man dann bei asm auch noch nachdenken muss ). Ich teste das morgen mal kurz für mich, mir jetzt zu spät.
Man kann einen Barbier definieren als einen, der alle diejenigen rasiert, und nur diejenigen, die sich nicht selbst rasieren.
Rasiert sich der Barbier?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Die größer Zahl nehmen ?

  Alt 10. Feb 2009, 08:40
ist entweder drin, weil es bei den anderen Max-Funktionen auch drin ist ... sieht einheitlicher aus
und eventuell könnte es vorteile für den Inline-Code haben.

PS: die Pascalversion ist am Ende schneller, als das ASM von dort oben, da in Delphi diese Funktion als INLINE-Code defniert ist.
heißt, im Programm gibt es diese Funktion dann nicht, da der Vergleich direkt vor Ort in deinen Quellcode integriert wird.
(bei dem ASM gibt es diese Funktion, wo erst hin- und dann wieder zurückgesprungen werden muß)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#20

Re: Die größer Zahl nehmen ?

  Alt 10. Feb 2009, 08:47
In D7 ist es kein inline (gibts das hier überhaupt?)
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 03:55 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