übersicht bei größerem project behalten?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
inti
Beiträge: 90
Registriert: 01.02.2006 17:25

Beitrag von inti »

ok, das mit dem declare habe ich hinbekomme und zumind. jetzt eine etwas geordnetere übersicht. trotzdem finde ich es "schade" dass proceduren "nicht richtig" global sind! :cry:
Benutzeravatar
winduff
Beiträge: 879
Registriert: 10.02.2006 21:05
Wohnort: Gießen
Kontaktdaten:

Beitrag von winduff »

inwiefern richtig global?!

So wie ich das verstanden hab: Klar die sind Global. Vorallem wenn du ein Declare davor setzt sind sie überall aufrufbar.
Bild
AND51 hat geschrieben:...und ich würde dein Programm aus Wut zwei mal installieren, um eines genüsslicher löschen zu können, als das andere...
Benutzeravatar
inti
Beiträge: 90
Registriert: 01.02.2006 17:25

Beitrag von inti »

:roll: warum sind die dinger nicht auch ohne declare global, warum ist es so wichtig dass die dinger in der richtigen reihenfolge im code stehen... habe ich noch nie verstanden!!!
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Der Compiler arbeitet es von oben nach unten ab, sonst müßte er es 2x
durchlaufen. Ich sehe das eher als Feature :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
inti
Beiträge: 90
Registriert: 01.02.2006 17:25

Beitrag von inti »

nö, ich finde das einfach "seltsam" denn mit GOSUB oder GOTO "nach oben" springen geht doch auch ohne probleme!?!?
Hellhound66
Beiträge: 476
Registriert: 23.03.2005 23:19

Beitrag von Hellhound66 »

Thema Übersicht:

Keep it simple.

1.) Modularisiere das Programm in möglichst unabhängige Module.
2.) Nutze einheitliche Beschreibungen für Variablen, Protoypen, Prozeduren, Methoden, usw..
3.) Beschreibe jedes Modul am Anfang des Moduls.
4.) Das Wichtigste: Mach dir zuerst einen Plan. Denke darüber nach, welche Daten whin fließen. Entscheide dich für Schnittstellen, Variablen und Prozeduren, die zum Konzept passen.
5.) Schreibe Prozeduren einfach und ohne Optimierungen. Zuerst sollte der code gut lesbar sein. Schnelligkeit kommt mit dem fertigen Programm, dass du dann optimierst.

Das sind so meine Basics..
Optimismus ist ein Mangel an Information.
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

gerade wenn es um übersicht geht, finde ich einen zusammenfassenden Declare-block hilfreich, in dem man alle prozeduren - mit vielleicht auch einem jeweiligen kommentar - schnell findet.
my pb stuff..
Bild..jedenfalls war das mal so.
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

soweit ich weiß sind proceduren sozusagen speicheradressen,bin amir aber nicht sicher.
Falls es so ist:
bei einem aufruf wird also zu einer speicheradresse gesprungen, die bei Procedure ....()
festgelegt wurde
nun kann man aber zu keiner speicheradresse springen, die nicht vorher festgelegt wurde
dafür gibt es das declare.
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

was du sagst bezieht sich aber nur auf die laufzeit. dass Declare manchmal nötig ist, hat (wahrscheinlich?) einfach die ursache, das der compiler bei der code-analyse, sonst bei jedem unbekanntem bezeichner den code extra nochmal durchsuchen müßte, und bei dieser suche könnten weitere unbekannte bezeichner auftauchen. die compilierung würde also noch weniger linear, und damit langsamer.
my pb stuff..
Bild..jedenfalls war das mal so.
Hellhound66
Beiträge: 476
Registriert: 23.03.2005 23:19

Beitrag von Hellhound66 »

Single pass compiler. Geht nur einmal drüber, deshalb Declare.

Ich bin kein Freund von Declares, weil ich hier keinen Unterschied erkenne, um den Code zu beschreiben:

Code: Alles auswählen

Declare Max(a,b)
;# Diese Prozedur gibt den größeren der beiden Werte zurück.

Code: Alles auswählen

;########
:# Max(a,b)
;########
;# a, b sind Variablen vom Typ long.
;########
;# Liefert den größeren der beiden übergebenen Variablen
;# zurück.
;########
;# Rückgabe : Long
;########
Optimismus ist ein Mangel an Information.
Antworten