|
Unterschiede Preass <-> C
Preass | C |
Upper und Lowercase Unterschiede gibts nicht! |
"a==A+1" meint NICHT "false +1" wie ein C'ler das lesen würde, | sondern "a=a+1;" |
a==a+1/2 | "a=(a+1)/2" , das ist wie beim Stack bzw. werden die Rechenregeln nicht eingehalten. |
"if a=1 {}" | hier fehlt keine Klammer, das ist so ok |
"if a=1 and b=1" | "if (a==1 && b==1)" |
"if a=1 or =2 {}" | "if (a==1 || a==2)" ist eine verkürzte Schreibweise für "if a=1 or a=2" , wenn da mal mehr als A steht, machts sich das beim Tippen bemerkbar |
"if (fh=open("filename",#mode_new))#0 {" | "if ((fh=open("filename",MODE_NEWFILE)) {" |
tagfunc(arg1,arg2,>taglistname:TAG,DATA|
TAG_DONE,0)
wobei man die Tagliste dann recyclen kann:
tagfunc(arg1,arg2,&taglistname)
|
tagfunc(arg1,arg2,TAG,DATA,TAG_DONE,NULL);
|
(a,b,c)=func(arg)
| ähm, tja, das gibts in C nicht, aber in PERL ! :) A steht in D0 , B steht in D1 , C steht in D2 |
{* name *} | Das sind meistens reine Compileranweisungen |
tagfunc(arg1,arg2,>tags:TAG1,Data1|
TAG2,*AbsData1|
TAG_DONE,NULL)
|
Das * bedeutet, nimmt nicht die Adresse, der Data1 Variablen,sondern
deren Inhalt. Das ist genau inverse zu C . Hat was mit Assembler zu tun. |
Area=makeAreaGFX(Gui,10,10,590,390)
For i=1 to 100
BlueBoxProzentT(Gui,Area,i)
next I
|
- Wieso kein ; ? Weil der Compiler nur eine Anweisung pro Zeile verarbeitet und weil ; in Assembler das Kommentarzeichen ist .
- Wieso muß man Area nicht deklarieren? Weil alle Variablen automatisch
LONG oder LONG* sind , anders ausgedrückt, kein Typcheck!.
Weswegen auch sowas geht:
var=malloc(size(struct XXX))
1=>var.XXX2.Feld1
Hier wird dem var als Zeiger als eine Struktur XXX genutzt. Man gibt einfach die Struktur an , die man da nutzen will.
"Aber das knallt doch vorn und hinten!"
"Nö, Brain 1.0 verhindert sowas i.d.R."
- Sieht aus wie Basic ! Jo, fand ich einfacher als for(;;){}
|
"if a#0 {}" | "if (a!=0) {}" |
Das sollte für die Beispiele reichen |
|