.
|
|
| Autor | Beitrag |
|---|---|
|
000 11.02.2002, 16:29 monkey |
könnte mir jmd. bitte ein praktisches beispiel zur verwendung des konditionalen dreifachoperator geben? Dieser Beitrag wurde am 11.02.2002 um 16:30 von monkey bearbeitet. |
|
Profil || Suche |
|
001 11.02.2002, 16:34 mani |
z.b. das is ganz lustig um nicht extra ne funktion zu machen, die das checkt und den string zurückgibt...anstelle ner normalen if abfrage würd ichs nicht nehemen...zu unübersichtlich -- |
|
Profil || Suche |
|
002 11.02.2002, 16:40 monkey |
oki dankeschön -- |
|
Profil || Suche |
|
003 11.02.2002, 16:40 Kriz |
Nun ja, ein einfaches Beispiel. Nehmen wir mal an, daß du eine Funktion hast, die einen Status abfragt, meinetwegen ob ein Bit in einer Variablen gesetzt ist oder nicht. Das kann man herkömmlich machen oder auch mit dem ?-Operator (wie er offiziell heißt): Zugegeben, das war ein laues Beispiel, denn optimiert schreibt man sowas: Eigentlich ist der ?-Operator nicht nötig, er erspart nur ein wenig Schreibarbeit. Aber hier mal ein sinnvolleres Beispiel: Cu --K:R-I)Z++ |
|
Profil || Suche |
|
004 11.02.2002, 17:15 monkey |
oha |
|
Profil || Suche |
|
005 11.02.2002, 18:29 Another1 |
kriz, du hast echt immer langeweile oder? ;) --Another1 ...relaxing..atm =) |
|
Profil || Suche |
|
006 14.02.2002, 14:42 apfelkorn |
herzlichen glückwunsch... ihr habt wahrscheinlich nicht nur eure großeltern verwirrt (die wahrscheinlich auch ein wenig englisch sprechen), sondern auch mich UND Rasmus Lerdorf -- |
|
Profil || Suche |
|
007 14.02.2002, 14:45 Prefect |
Eine andere nützliche Verwendung ist: printf("Name: %s\n", foo ? foo->name : "<null>"); oder so. Ach ja, in C ist ein Ausdruck wahr, wenn er ungleich 0 ist. Im ersten Post steht, ein Ausdruck wäre wahr, wenn er größer 0 ist - letzteres ist falsch (auch negative Werte sind wahr, nur 0 ist falsch). cu, Widelands - Gemütliche Aufbaustrategie, Free Software |
|
Profil || Suche |
|
008 14.02.2002, 16:22 mani |
hmm prefect ? und wo is nu der prinzipielle unterschied zu meinem beispiel ? -- |
|
Profil || Suche |
|
009 14.02.2002, 20:28 apfelkorn |
der verwirrungsfaktor ist größer -- |
|
Profil || Suche |
|
010 15.02.2002, 10:04 mani |
jaaah :) -- |
|
Profil || Suche |
|
011 15.02.2002, 15:16 apfelkorn |
ich beschwöre euch: bitte lasst diese amputation einer if klausel im schrank unter 4 schlössern zu Hause... es macht den Code sehr viel unleserlicher... Ihr könnt ja auch gleich schon mit C# dann ankommen, .net-Produkte zusammen-Klicki-Buntieren und es dann als inoffizielles Erweiterungspack für alle Windows-Versionen, die exklusiv .net-Klicki-Bunti-Programme unterstützen, was direkt komplett ins Internet eingearbeitet wird und wodurch dann ein Virus produziert wird, mit dem man jeden Linux-Rechner Weltweit zusammenbrechen lässt... p.s.: C# wurde auch nur mit C geschrieben :) -- |
|
Profil || Suche |
|
012 15.02.2002, 16:15 Kriz |
Ich gehe mal davon aus, der ?-Operator stammt aus Tagen, wo persistenter Speicherplatz (Magnetband und -trommel ect.) knapp und sauteuer gewesen war. Schließlich erspart er gegenüber der vergleichbarsten if-Abfrage einige Bytes an Platz. Zudem wäre noch die Frage, ob der Compiler das ?-Konstrukt genauso auflöst wie eine if-Abfrage desselben Inhalts. Das kann ich jetzt leider nicht nachvollziehen, da ich keinen gescheiten Disassembler habe. Sollte der ?-Operator allerdings kompakter kompiliert werden als das vergleichbarste if-Konstrukt, dann hat er durchaus seine Berechtigung in der Mikrosteuerungstechnik, denn dort ist Speicherplatz nachwievor teuer. --K:R-I)Z++ |
|
Profil || Suche |
|
013 15.02.2002, 16:42 anothergb02 |
apfelkorn Being in john Malkovich |
|
Profil || Suche |
|
014 15.02.2002, 17:21 monkey |
© 2001 Frank Hasenklever -- |
|
Profil || Suche |
|
015 16.02.2002, 00:36 apfelkorn |
*heul* -- |
|
Profil || Suche |
|
016 16.02.2002, 10:05 monkey |
oh apfelkorn du armer ;) -- |
|
Profil || Suche |
|
017 16.02.2002, 18:44 Prefect |
? : kann Code leserlicher machen. Immerhin spart sie gegenüber eines if()-else-Blocks 3 Zeilen - man sieht also mehr Code auf einmal und kann den Code damit besser lesen. Ganz einfach :) Das mit dem optimierten Kompilieren ist (war) sicher auch richtig. Bei modernen Compilers sollte es aber eigentlich keinen Unterschied geben. cu, Widelands - Gemütliche Aufbaustrategie, Free Software |
|
Profil || Suche |
|
018 17.02.2002, 10:22 monkey |
jo, prefect ich hab ne kleine frage, in meinem kleinem c++ buch steht, das rand() pseudozufallszahlen erzeugt, wie ist das denn gemeint? -- |
|
Profil || Suche |
|
019 17.02.2002, 10:42 mani |
naja, das Teil gibt halt Zufallszahlen aus :) |
|
Profil || Suche |
|
020 17.02.2002, 10:43 monkey |
jojo das is mir schon klar :D |
|
Profil || Suche |
|
021 17.02.2002, 12:04 apfelkorn |
weil es keine echten zufallszahlen sind... die zufallszahlen werden vornehmlich durch den timer beeinflußt und mit einem guten zufallsgenerator wird auch noch vom ram gelesen. Wenn du also genau zur selben Zeit, mit genau dem selben Computer genau das selbe vor dem ausführen des zufallsgenerators gemacht hast, wird der zufallsgenerator dir genau die selben zahlen sagen -- |
|
Profil || Suche |
|
022 17.02.2002, 12:07 monkey |
krieg das aber erstmal hin ;D -- |
|
Profil || Suche |
|
023 17.02.2002, 12:25 Tron |
apfelkorn, du laberst nonsens. ein pseudozufallszahlengenerator hat NICHTS mit dem timer oder dem ram zu tun. ein pseudozufallszahlengenerator heisst so, da er mit hilfe einer rechnung aus der letzten erzeugten zahl die naechste errechnet; und da man die genaue rechnung nicht kennt erscheinen die zahlen zufaellig. einer der einfachsten aber recht effektiven pseudozufallszahlengeneratoren ist: ein pseudozufallszahlengenerator muss zunaechst mit der ersten zahl initialisiert werden, diese zahl nennt man 'seed' (saat). 'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams 'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett |
|
Profil || Suche |
|
024 17.02.2002, 15:17 Prefect |
Den oben genannten Algorithmus kann man übrigens noch weiter verbessern, indem man nur die unteren Bits von x zurückgibt (also wenn x eine 64-Bit-Zahl ist gibt man die unteren 32 Bit zurück). Das hat zur Folge, daß der Zufallszahlengenerator intern noch einen versteckten, von außen unbekannten Zustand hat, wodurch die Zahlenfolge noch "unvorhersagbarer" wird. cu, Widelands - Gemütliche Aufbaustrategie, Free Software |
|
Profil || Suche |
|

