Deutsch
Forum

Verschachtelte Proceduren und Variablendeklaration

 

Torsten
Rümker
Ich arbeite manchmal mit verschachtelten Proceduren, und bekomme wenn ich den xpse zum Compilieren benutze, eine Warnung das Variablen nicht deklariert sind.
KompilierenMarkierenSeparieren
Proc aussen

    Declare beispiel%

    Proc innen

        let beispiel% = 1

    EndProc

    innen

Endproc


ist natürlich arg vereinfacht, aber in diesem Fall beschwert sich Xpse, das ich die Variable beispiel% in der Procedure innen nicht deklariert habe.

Jetzt stellt sich natürlich die Frage, ist das ein Fehler von mir oder von Xpse?

MfG
Torsten
 
Ich lerne, ob ich will oder nicht!
Betriebssystem:
- Ubuntu 15.x
- Windows (diverse)
XProfan Version: X2
08.10.2006  
 



Nun dieser Fehler vom XPSE dürfte nur in der Version von gestern vorkommen - die heutige Version machts richtig. Was Du da machst ist natürlich erlaubt solange innen wirklich in Aussen ist.

Ich poste aber gleich nochmal ein Update - hatte einen Bug bei den Compilerschaltern drin.
 
08.10.2006  
 



Das widerum ist nicht erlaubt und wird auch zurecht angemeckert.
KompilierenMarkierenSeparieren
Proc Aussen

    Declare Beispiel%
    Innen

Endproc

Proc Innen

    Let Beispiel% = 1

Endproc

 
08.10.2006  
 




Torsten
Rümker
Jau ist logisch so sollte es natürlich nicht geschrieben werden.

Den Xpse den ich benutzte hatte ich unmittelbar vor meinem Test heruntergeladen.

War mein erstes mal

MfG
Torsten
 
Ich lerne, ob ich will oder nicht!
Betriebssystem:
- Ubuntu 15.x
- Windows (diverse)
XProfan Version: X2
08.10.2006  
 




Sebastian
König
[quote:e6d761775e]Das widerum ist nicht erlaubt und wird auch zurecht angemeckert.[/quote:e6d761775e] Naja - erlaubt ist es in (X)Profan leider, wenn auch wirklich sehr unschön...

MfG

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



Die aktuelle V0.1.6b reagiert so auch? Dann bräuchte ich vielleicht nen Stück Source damit der Bug nachvollziehbar ist...
 
08.10.2006  
 



[quote:faebaede03=Sebastian König][quote:faebaede03]Das widerum ist nicht erlaubt und wird auch zurecht angemeckert.[/quote:faebaede03] Naja - erlaubt ist es in (X)Profan leider, wenn auch wirklich sehr unschön...

MfG

Sebastian[/quote:faebaede03]
Ja ich weiß lol aus sicht des ausführenden Programmes ists ja dann auch intern.

Ich finde aber man sollte nicht jeden Unsinn unterstützen.
 
08.10.2006  
 




Jac
de
Lad
Aber es funktioniert bestens so...
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
10.10.2006  
 



[quote:95537f47ff=Jacob Liebeck]Aber es funktioniert bestens so... [/quote:95537f47ff]
Wofür es aber keine Garantie gibt - besonders nicht was nachfolgende Versionen betrifft.
 
10.10.2006  
 




RGH
Hallo,

mit der Sichtbarkeit der Variablen halte ich es so, wie Delphi bzw. Pascal (und etliche andere Programmiersprachen):

Wenn Prozedur_A eine Prozedur_B aufruft, dann sind die Variablen von Prozedur_A in Prozedur_B sichtbar. Das wird auch so bleiben.

Auf eine Verschachtelung von Prozeduren (also Prozeduren, die im Quellcode innerhalb einer anderen Prozedur stehen), würde ich verzichten. Das hat derzeit in XProfan nur eine rein optische Wirkung, da auch die innere Prozedur von außerhalb der äußeren Prozedur gefunden wird. (Das ist in Delphi/Pascal anders und war in XProfan auch mal anders geplant.)

PS: Nach der reinen objektorientierten Lehre sind Methoden innerhalb von Methoden nicht möglich, und Prozeduren, die nicht als Methode an ein Objekt gekoppelt sind, und sei es ein statisches Objekt, sind auch nicht möglich.

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
10.10.2006  
 



Das ist ja fast wie Shared, wußte ich garnicht
KompilierenMarkierenSeparieren
Funktioniert gut
 
10.10.2006  
 




RGH
Dieses Beispiel zeigt allerdings auch, warum man dieses Feature eher sparsam verwenden sollte. In größeren Programmen wird es dann leich unübersichtlich, wenn es auf mehreren Ebenen Variablen gleichen Namens gibt und sie auf diese Weise verwendet werden.

Ich ziehe es vor, in Prozeduren nur lokale Variablen und die Übergabeparameter zu verwenden; eventuell noch möglichst wenige globale Variablen, die am Programmanfang bzw. im Hauptprogramm auch deutlich als solche ersichtlich sind. Zwischen dem was eine Sprache erlaubt und was gutem Programmierstil entspricht, gibt es halt manchmal Unterschiede! ;)

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
10.10.2006  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

8.497 Betrachtungen

Unbenanntvor 0 min.
RudiB.05.11.2021
rquindt11.05.2018
E.T.01.04.2018
GDL24.08.2015
Mehr...

Themeninformationen



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