Deutsch
C ++ Forum

Verschachtelte Prozeduren

 

Clemens
Meier
Soweit ich gelesen habe, sind verschachtelte Prozeduren nicht erlaubt. Verschachtelt heißt aber wohl, dass sich eine Prozedur innerhalb einer anderen befindet. Heißt verschachtelt auch, dass eine Prozedur von der anderen aufgerufen wird? Oder ist das erlaubt?

Prozeduren, die exportiert werden sollen, müssen statt mit proc mit dllproc definiert werden, da sie vermutlich anders verarbeitet werden. Wenn das Aufrufen von anderen Prozeduren innerhalb von DLL kein Problem ist, gestaltet sich der Aufruf von dllproc(eduren) genauso wie normale PROCs oder muss dabei etwas beachtet werden?
 
XProfan 9.1; XP SP2; FF; Editpad
12.05.2006  
 




Sebastian
König
Hallo Clemens,

[quote:38387d6e4f]Soweit ich gelesen habe, sind verschachtelte Prozeduren nicht erlaubt. Verschachtelt heißt aber wohl, dass sich eine Prozedur innerhalb einer anderen befindet. Heißt verschachtelt auch, dass eine Prozedur von der anderen aufgerufen wird? Oder ist das erlaubt? [/quote:38387d6e4f]
Mit verschachtelt meine ich, wie Du richtig vermutet hast, nur die Definition einer Prozedur innerhalb einer anderen, also etwas in dieser Art:
KompilierenMarkierenSeparieren
Proc Test

    ...
    declare a%,b%
    ...

    Proc Output

        print a%,b%

    EndProc

    ...

EndProc


Im Gegensatz zu (X)Profan (und z.B. Delphi) gibt es diese Möglichkeit in C++ nicht.

Aber: Erlaubt ist das ganze mit Profan2Cpp trotzdem! Bei der Übersetzung wird die Verschachtelung einfach (ok, ganz einfach ist es nicht ) aufgelöst. Oft ist es dabei eigentlich nötig (und Profan2Cpp schlägt es beim Erkennen von verschachtelten Prozeduren auch vor), die Option Alle Variablen global deklarieren zu aktivieren.

Der Grund dafür ist folgender: In dem obigen Beispiel-Code werden in der übergeordneten Prozedur die Variablen a% und b% deklariert. in der untergeordneten Prozedur werden sie allerdings auch benutzt. In (X)Profan kein Problem - in C++ nach der Auflösung der Verschachtelung jedoch schon. Wenn sie allerdings global zu Verfügung stehen ist alles in Ordnung .

[quote:38387d6e4f]Prozeduren, die exportiert werden sollen, müssen statt mit proc mit dllproc definiert werden, da sie vermutlich anders verarbeitet werden. Wenn das Aufrufen von anderen Prozeduren innerhalb von DLL kein Problem ist, gestaltet sich der Aufruf von dllproc(eduren) genauso wie normale PROCs oder muss dabei etwas beachtet werden?[/quote:38387d6e4f]
Extra vorgesehen hatte ich diese Möglichkeit nicht (was man daran merkt, dass sich der Syntax-Check über eine nicht definierte Funktion beschwert ), aber eigentlich sollte es kein Problem sein. Ich habe es gerade mal mit dem Beispiel aus der Profan2Cpp-Hilfe probiert - funktioniert abgesehen von der Falschmeldung im Syntax-Check ohne Probleme...

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
12.05.2006  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

2.406 Betrachtungen

Unbenanntvor 0 min.
RudiB.09.09.2021
Unbenannt22.06.2011

Themeninformationen

Dieses Thema hat 2 Teilnehmer:

Sebastian König (1x)
Clemens Meier (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie