[and or xor] vs. [&& || ?]
-
Der Titel sagt es schon.
Was soll man am besten gebrauchen? z.B. and oder &&Ich schreibe eigentlich immer and,or,xor
aber jetzt bin ich vor einem alten compiler (GCC/G++)
Und es geht ned wegen den schlueselwoertern.
Was soll kann ich machen?
Soll ich and,or,xor nicht mehr gebrauchen *zweifelanmir*MFG Ghost
-
weiß nich ob ich dich richtig verstanden habe...
du wilslt die wörter: and,xor, or in c++ verwenden?Hmm...glaube nicht das das geht!
Aber was willste? Logische Operatoren? (||, &&) oder Bitoperatoren (&,|,^)?
-
5er1al schrieb:
weiß nich ob ich dich richtig verstanden habe...
du wilslt die wörter: and,xor, or in c++ verwenden?Hmm...glaube nicht das das geht!
Also laut dem Standard sind and, xor, or usw. als Schlüsselwörter reserviert. Allerdings weiß ich nicht, inwiefern die von den Compilern unterstützt werden. Ich benutze immer &&, ^, || usw.
-
Green_Ghost schrieb:
Der Titel sagt es schon.
Was soll man am besten gebrauchen? z.B. and oder &&Ich schreibe eigentlich immer and,or,xor
aber jetzt bin ich vor einem alten compiler (GCC/G++)
Und es geht ned wegen den schlueselwoertern.
Was soll kann ich machen?
Soll ich and,or,xor nicht mehr gebrauchen *zweifelanmir*MFG Ghost
#define and &&
und machst auf altem compiler neuen code.
-
Ich benutze immer and,or,xor
aber als ich vor einem alten compiler (GCC.2.6 oder so)
etwas compilieren wollte, und es wegen diesen ausdruecken nicht ging,
sind mir zweifel gekommen. Und jetzt weiss ich nicht, ob ich and,or,xor
noch gebrauchen soll.darum suche ich jetzt rat.
-
Green_Ghost schrieb:
Und jetzt weiss ich nicht, ob ich and,or,xor
noch gebrauchen soll.
darum suche ich jetzt rat.#define and &&
und machst auf altem compiler neuen code.die alten compiler sterben doch aus. also geh davon aus, daß du and hast. du benutzt ja auch templates, obwohl das nicht alle können.
und and ist einfach besser als && und alte zöpfe gehören abgeschnitten.
-
volkard2 schrieb:
Green_Ghost schrieb:
Und jetzt weiss ich nicht, ob ich and,or,xor
noch gebrauchen soll.
darum suche ich jetzt rat.#define and &&
und machst auf altem compiler neuen code.die alten compiler sterben doch aus. also geh davon aus, daß du and hast. du benutzt ja auch templates, obwohl das nicht alle können.
und and ist einfach besser als && und alte zöpfe gehören abgeschnitten.
Danke
-
also hab ich das richtig verstanden:
#define and &&
and is besser wie &&?
[EDIT]
PS: natürlich nur vom gebrauch (das es das selbe macht is ja klar)
-
Da es sich bei and, or und xor um Keywords handelt halte ich die
Konstruktionen:
#define and &&
...
für ausserordentlich schlecht.Wenn jemand nichts für die jetzigen Operatoren übrig hat dann ist nachfolgendes sicher die bessere Lösung:
#define AND &&
...Für einen Menschen spielt der Unterschied zwischen AND und and
glücklicherweise keine so grosse Rolle wie für einen Compiler bzw.
Standardisierung.
-
Die heuten Compiler brauchen keine #define and/AND &&
Nur die alten comilier.
-
Redhead schrieb:
Da es sich bei and, or und xor um Keywords handelt halte ich die
Konstruktionen:
#define and &&
...
für ausserordentlich schlecht.genau desdawegen macht man #define and &&.
und nicht #define AND &&.
weil der alte compiler kaputt ist. das ist ein BUGFIX und hat nix mit freier entfaltung der personlichkeit unter sozioökonomischen aspekten der farblichen gestaltung alter compiler zu tun.
es ist kein abweichen vom standard, wie die anderen keyword-wegdefines ala#define goto fOrbiDDeN
es ist definen zum standard hin.
-
Redhead schrieb:
Da es sich bei and, or und xor um Keywords handelt halte ich die
Konstruktionen:
#define and &&
...
für ausserordentlich schlecht.Warum? Im schlimmsten Fall hat man das keyword nachträglich nochmal definiert.
-
Redhead schrieb:
Da es sich bei and, or und xor um Keywords handelt halte ich die
Konstruktionen:
#define and &&
...
für ausserordentlich schlecht.Wenn jemand nichts für die jetzigen Operatoren übrig hat dann ist nachfolgendes sicher die bessere Lösung:
#define AND &&
...Für einen Menschen spielt der Unterschied zwischen AND und and
glücklicherweise keine so grosse Rolle wie für einen Compiler bzw.
Standardisierung.config.hpp, anyone?
btw, der Unterschied zwischen AND und UND ist auch nicht allzu groß...
-
config.hpp, anyone?
btw, der Unterschied zwischen AND und UND ist auch nicht allzu groß...Mir dem Unterschied das UND eine Variable sein kann...
Das gleiche wie meine Grossmutter und meine Mutter einen unterschied haben.
-
volkard2 schrieb:
und and ist einfach besser als &&
Warum? Bessere Lesbarkeit
, persönliche Abneigung, Ironie?
-
audacia schrieb:
volkard2 schrieb:
und and ist einfach besser als &&
Warum? Bessere Lesbarkeit
, persönliche Abneigung, Ironie?
code mit viel && und || ist zu schwer zu lesen, wie folgender ausschnitt beweist:
bool datumIstGueltig(int tag,int monat,int jahr) { return monat>0&&monat<13&&tag>0&&tag<32&&(tag<31¦¦(monat>7!=monat%2==1)) &&(monat!=2¦¦(tag<30&&(((jahr%4==0&&jahr%100!=0)¦¦jahr%400==0)¦¦tag<29))); }
-
ich bin auch dafür, dass aus '{' endlich 'begin' und aus '}' ein 'end' wird
-
volkard schrieb:
code mit viel && und || ist zu schwer zu lesen, wie folgender ausschnitt beweist:
bool datumIstGueltig(int tag,int monat,int jahr) { return monat>0&&monat<13&&tag>0&&tag<32&&(tag<31¦¦(monat>7!=monat%2==1)) &&(monat!=2¦¦(tag<30&&(((jahr%4==0&&jahr%100!=0)¦¦jahr%400==0)¦¦tag<29))); }
Und welches von denen findest du leserlicher
?
bool datumIstGueltig(int tag,int monat,int jahr) { return monat > 0 && monat < 13 && tag > 0 && tag < 32 && (tag < 31 || (monat > 7 != monat % 2 == 1)) && (monat != 2 || (tag < 30 && (((jahr % 4 == 0 && jahr % 100 != 0) || jahr % 400 == 0) || tag < 29))); } bool datumIstGueltigMitAndUndOr(int tag,int monat,int jahr) { return monat > 0 and monat < 13 and tag > 0 and tag < 32 and (tag < 31 or (monat > 7 != monat % 2 == 1)) and (monat != 2 or (tag < 30 and (((jahr % 4 == 0 and jahr % 100 != 0) or jahr % 400 == 0) or tag < 29))); }
Oder meinst du, and, or etc. sind besser, weil sie den Programmierer zwingen, zwischen Operatoren und Operanden Leerzeichen zu machen?
-
Green_Ghost schrieb:
config.hpp, anyone?
btw, der Unterschied zwischen AND und UND ist auch nicht allzu groß...Mir dem Unterschied das UND eine Variable sein kann...
Der war gut
Green_Ghost schrieb:
Das gleiche wie meine Grossmutter und meine Mutter einen unterschied haben.
Ich bin mir zwar nicht sicher was du mit dieser Äußerung ausdrücken willst, aber mach dir mal Gedanken was ich mit meiner bezweckte.
-
Green_Ghost schrieb:
Soll ich and,or,xor nicht mehr gebrauchen *zweifelanmir*
Nunja, ist letztendlich persönliche Geschmackssache. Trotzdem sollte man sich darüber im Klaren sein, dass man mit and, or, xor, etc. keine Vorteile hat
- längere Schreibweise (zB bitand gegenüber &)
- 99,9% aller C++ Programmierer nutzen es nicht (dh, du musst dir letztendlich sowieso beide Schreibweisen aneignen, wenn du Fremdcode verstehen willst)
- und wenn du's nutzt, dann musst du es auch generell durchziehen - ein 'a not_eq b' ist ja noch möglich, aber was machst du bei 'a == b'? Wieder mit #defines Unzulänglichkeiten beseitigen?
- audacia's Beispiel hat gezeigt, dass man damit keine leserlichen Vorteile hat - ausschlaggebend dafür ist immer noch die Codegestaltung des Programmieres. Und wer solchen Code wie den von volkard schreibt, sollte sich einfach mal 'ne neue Tastatur kaufen, wo die Leertaste auch funktioniert.
- zudem hat 'a and b' diesen VB Touch