verkürzte schreibweise in bb
Übersicht

Sterbendes LüftleinBetreff: verkürzte schreibweise in bb |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Text entfernt | ||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Indirekt... Wenn Du IDEal als Entwicklungsumgebung nutzt kannst Du folgendes schreiben:
BlitzBasic: [AUSKLAPPEN] variable++ und der Editor macht dann dieses draus: BlitzBasic: [AUSKLAPPEN] variable=variable+1
Das ganze geht natürlich auch mit "--". Der Editor erledigt also das was der Compiler nicht verstehen würde ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Sterbendes Lüftlein |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Text entfernt | ||
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich weis aber nicht ob es gerade Projetktechnisch sinnvoll ist, in seinem code mit irgendwelchen c# codefragmenten zu arbeiten... die auch nur von einer speziellen IDE unterstützt werden. | ||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
![]() |
Starwar |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn man "a++" eingibt wird das "a++" durch "a=a+1" ersetzt ![]() MFG |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist die automatische Ersetzung die da läuft - alles ist und bleibt 100% BB Code, es ist nur schneller zu tippen. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Raiden93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
also kapiere ich das jetzt so
Gold++ 1 und wen ich das save oder Compille wird das zu Gold = Gold +1 und wenn ich es dann mit BB öffne ist es auch wieder Gold = Gold +1 damit es ja kein Fehler mit dem Compiller gibt oder? |
||
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist wie in C
Code: [AUSKLAPPEN] Gold++ Ist das Gleiche wie
Code: [AUSKLAPPEN] Gold = Gold + 1
+ 2 oder +3 kannst du nicht einfach dahinter schreiben Das ++ ist nur eine Vereinfachung, weil man die Operation Var = Var + 1 sehr oft braucht. Unser Dozent sagte mal dass das durch die natürliche Faulheit der Menschen entstanden ist. Und da die Entwickler von C Menschen waren kam das so zustande. ![]() *edit* Und nein wenn es in die Datei rein geschrieben wird dann sollte das auch weiterhin so drin stehen. Auch wenn du es in einem anderen Editor öffnest. Das sollte auch nix mit dem Editor zu tun haben. Theoretisch wandelt das der Präprozessor vom Compiler sowieso wieder in Var=Var+1 um. |
||
![]() |
Tennisball |
![]() Antworten mit Zitat ![]() |
---|---|---|
Man kann es natürlich auch einfach mal ausprobieren. Ergebnis: IDEal ändert a++ sofort in a=a+1, wenn man es so einstellt.
mfg, Tennisball |
||
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gut das macht dann aber IDEal für die Leute die von C kommen, aus Gewohnheit. Das hat dann aber auch nix mit dem Compiler von BB zu tun. | ||
![]() |
maximilian |
![]() Antworten mit Zitat ![]() |
---|---|---|
a++ ist in C++ NICHT das gleiche wie a=a+1.
Es ist nämlich: (a=a+1)-1, soll heißen: a++; func(a) ; wenn a vorher 4 war ist es jetzt 5 ist etwas anderes als func(a++) ; wenn a vorher 4 war ist es jetzt 5, die Funktion wird aber mit (a)-1 = 4 aufgerufen |
||
Variety is the spice of life. One day ignore people, next day annoy them. |
furbolg |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
maximilian hat Folgendes geschrieben: a++ ist in C++ NICHT das gleiche wie a=a+1.
Es ist nämlich: (a=a+1)-1, soll heißen: Falsch, es bedeutet nicht "(a=a+1)-1" sondern der Wert der Variable wird erst nach dem Auslesen erhöht. Um das zu Vermeiden kann man ++a benutzen (Post- und Preinkrementation). |
||
![]() |
maximilian |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Falsch
Es ist überhaupt nicht falsch. (a=a+1)-1 ist eine völlig korrekte syntaktische Umschreibung für die Semantik der Postinkrementierung. Wie der Compiler das nun genau macht ist völlig egal, dafür gibt es keine Regeln. |
||
Variety is the spice of life. One day ignore people, next day annoy them. |
BBPro2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zitat: Es ist überhaupt nicht falsch.
(a=a+1)-1 ist eine völlig korrekte syntaktische Umschreibung für die Semantik der Postinkrementierung. Wie der Compiler das nun genau macht ist völlig egal, dafür gibt es keine Regeln. nein ist es nicht ? bei (a=a+1)-1 wäre a am ende nicht um 1 höher. ist es aber bei a++ (a=a+1)-1 is einfach nur irgendein käse der mit inkrementierung nix zu tun hat ![]() |
||
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: a++ ist in C++ NICHT das gleiche wie a=a+1.
Doch. Den overload vom operator++ in GNU-C++ kannst du dir ja ansehen, ist ja direkt in MinGW/GNUGCC drin. Zitat: Wie der Compiler das nun genau macht ist völlig egal, dafür gibt es keine Regeln.
wieder falsch, C++ 97 Standard usw. Sogar MSVC++ ist auf einen Standard festgelegt. und (a=a+1)-1 ist volliger quatsch. Da meckert der compiler nämlich daran: Code: [AUSKLAPPEN] error: expected ')' before '=' token
Und passieren würde auch nichts, da du von einer Gleichung 1 abziehst. Richtig wäre hier beim auruf func(a++): Code: [AUSKLAPPEN] func(a);
a++; //oder direkt der overload operator++ a=a+1; furbolg hat hier schon recht. Man kann den operator zwar überladen, standardmäßig ists a=a+1, in beiden varianten. So und nu BTT! |
||
Warbseite |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ne, Moment, noch nicht BTT.
Ihr habt ja alle Recht. Auch Maximillian. (a=a+1)-1 ist kein völliger Käse sondern genau das was gemacht wird. Zuerst wird die Variable a um 1 erhöht und das in a gespeichert (Inkrement, juhu). Dann muss allerdings von der um 1 erhöhten Variable wieder 1 abgezogen werden, da wir uns ja alle einig sind, dass der "alte" Wert von a verwendet wird, der Wert vor der Erhöhung (Postinkrement, juhu). Und den kriegt man mit -1. Eigentlich soweit sonnenklar, man muss es nur besser beschreiben damit es (hoffentlich) jeder versteht. Aber ja, soviel zum Background. Das spielt alles für BB keine Rolle, da das tatsächlich nur eine von IDEal angebotene Bequemlichkeit ist, die sofort umgesetzt wird, ohne dass der Compiler jemals damit in Berührung kommt. Ich persönlich verwende das auch gern, um alle anderen Additionen zu machen. Man braucht nämlich nur variable++ eintippen und dann einmal auf die Rückschritttaste klopfen und kann zB auch a=a+2 sehr schnell damit eingeben ![]() mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
maximilian |
![]() Antworten mit Zitat ![]() |
---|---|---|
Boah, das ist ja nicht auszuhalten. Ich grabe jetzt nochmal extra diesen Thread aus, weil mich die freche Art von Xaymar ziemlich aufregt.
Xaymar hat Folgendes geschrieben: Zitat:
a++ ist in C++ NICHT das gleiche wie a=a+1.
Doch. Den overload vom operator++ in GNU-C++ kannst du dir ja ansehen, ist ja direkt in MinGW/GNUGCC drin. Zitat: Wie der Compiler das nun genau macht ist völlig egal, dafür gibt es keine Regeln.
wieder falsch, C++ 97 Standard usw. Sogar MSVC++ ist auf einen Standard festgelegt. und (a=a+1)-1 ist volliger quatsch. Da meckert der compiler nämlich daran: Code: [AUSKLAPPEN] error: expected ')' before '=' token
Und passieren würde auch nichts, da du von einer Gleichung 1 abziehst. Richtig wäre hier beim auruf func(a++): Code: [AUSKLAPPEN] func(a);
a++; //oder direkt der overload operator++ a=a+1; furbolg hat hier schon recht. Man kann den operator zwar überladen, standardmäßig ists a=a+1, in beiden varianten. So und nu BTT! Wenn du bei einem "(a=a-1)+1" einen Fehler beim Parsen kriegst hast du einen nicht konformen Compiler. Jeder C/C++-Compiler müsste das problemlos schlucken, und GCC tuts natürlich (gerade eben getestet). Und selbstverständlich passiert da was. Dass C und C++ ISO-standardisiert sind will hier niemand bezweifeln, trotzdem ist egal wie dieser Standard implementiert wird, so lange die Semantik stimmt. Und a++ durch (a=a+1)-1 zu ersetzen wäre eine völlig standardkonforme Implementierung dieses Operators. Um nochmal klarzustellen: a++ ist das gleiche wie (a=a+1)-1 (Veränderung kommt erst im späteren Programmverlauf zur Geltung) ++a ist das gleiche wie a=a+1 (Veränderung ist unmittelbar) Hier noch ein Beispiel: Code: [AUSKLAPPEN] int a = 0; printf("%d\n", a++) printf("%d\n", a); Ausgabe: 0 1 Code: [AUSKLAPPEN] int a = 0; printf("%d\n", ++a) printf("%d\n", a); Ausgabe: 1 1 |
||
Variety is the spice of life. One day ignore people, next day annoy them. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group