Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Definitionan analog #define in C (https://www.delphipraxis.net/90742-definitionan-analog-define-c.html)

dr_gessi 23. Apr 2007 08:24


Definitionan analog #define in C
 
Hallo,

in C gibt es die äußerst praktische Möglichkeit, Textersetzung mit der Anweisung #define durchzuführen. Die Textersetzung wird dabei vor Präprozessor und der Compiliering durchgeführt. Beispiel:

Code:
#define FUNCTION_ADD(p1, p2) do { p1 = p1 + p2; } while (0)
Ich habe dieses schöne Feature leider nicht in Delphi finden können.

Gibt es sowas in Delphi?

vielen Dank für Eure Zeit.
Gruß, dr_gessi

Robert Marquardt 23. Apr 2007 08:30

Re: Definitionan analog #define in C
 
Nein.

mkinzler 23. Apr 2007 08:30

Re: Definitionan analog #define in C
 
Delphi besitzt keinen Präprozessor.

Christian Seehase 23. Apr 2007 08:43

Re: Definitionan analog #define in C
 
Moin Gessi,

die Ersetzung der Makros wird übrigens nicht vor dem Präprozessor durchgeführt, sondern vom Präprozessor. ;-)

dr_gessi 25. Apr 2007 09:50

Re: Definitionan analog #define in C
 
Vielen Dank für die Info, auch wenn Sie mich nicht weitergebracht hat :-D

Gruß

Bernhard Geyer 25. Apr 2007 10:15

Re: Definitionan analog #define in C
 
In neueren Delphi-Versionen gibt es die möglichkeit per Inline-Funktionen teilweise sowas nachzubilden.

Robert Marquardt 25. Apr 2007 10:27

Re: Definitionan analog #define in C
 
Nein. Ein wichtiger Unterschied ist das der C Praeprozessor Call-by-Name implementiert. Call-by-Name heisst Parameter werden behandelt als waeren sie textuell ersetzt. Dieses Verhalten kann man in Delphi nicht implementieren.

jbg 25. Apr 2007 11:25

Re: Definitionan analog #define in C
 
Zitat:

Zitat von Robert Marquardt
Dieses Verhalten kann man in Delphi nicht implementieren.

Zumindest nicht ohne eingeschleusten Delphi-Präprozessor


Alle Zeitangaben in WEZ +1. Es ist jetzt 22: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