Datum:
Guten Tag! Ich lerne c mit dem dev-c++. nun bin ich auf folgende Übung gestossen: Makros:
#include<stdio.h> #define MAX(a, b) ((a) < (b) ? (b) : (a)) int main(int argc, char *argv[]) { int zahla=8, zahlb=7; printf("Maximum: %d\n", MAX(zahla, zahlb)); getchar(); return 0; } |
kann man dies erklären, vorallem die Bedeutung von ? Danke und Gruss! M.B.
Datum:
f*ck, falschen Knopf gedrückt Antwort weg grrrr... Nochmal: ?: ist eine Art if in Kurzform (s. C-Buch deiner Wahl), man könnte auch eine Funktion
int max(const int a, const int b) { if(a<b) return b; else return a; } |
schreiben. Das Makro hat den Vorteil dass es mit double, float und int funktioniert. Nachteil: Die Parameter werden u.U. zweimal ausgewertet, MAX(a++,b) führt nicht unbedingt zum vermuteten Ergebnis (probier es mal aus!).
Datum:
Vielen Dank! ? Kurzform von if steht in keinem meiner zwei c Bücher! Aber so ist es klar!! Grüsse! M.B.
Datum:
M. B. schrieb: > ? Kurzform von if steht in keinem meiner zwei c Bücher! Hm, dann taugen die wohl nichts. Wenn du Englisch kannst besorg dir "The C Programming Language" 2nd edition von Brian W. Kernigham und Dennis M. Ritchie, das ist die "Bibel" von der Erfindern der Sprache persönlich verfasst.
Datum:
Das Stichwortist ist Ternärer Operator
Datum:
asdfg schrieb: > Wenn du Englisch kannst besorg dir "The > C Programming Language" 2nd edition von Brian W. Kernigham und Dennis M. > Ritchie, das ist die "Bibel" von der Erfindern der Sprache persönlich > verfasst. Dazu muss man kein Englisch können, die deutschsprachige Übersetzung ist vorzüglich ("Programmieren in C", 2. Ausgabe, Hanser-Verlag).
Datum:
Rufus Τ. Firefly schrieb: > Dazu muss man kein Englisch können, die deutschsprachige Übersetzung ist > vorzüglich ("Programmieren in C", 2. Ausgabe, Hanser-Verlag). Aber unbedingt auf die zweite Ausgabe achten! Die erste ist nicht nur technisch veraltet (auch wenn's natürlich den ternären Operator auch da schon gab), sondern deren deutsche Übersetzung war völlig neben der Spur. Die hat lediglich Unterhaltungswert.
Datum:
Und das Lösungsbuch? Hat die Ausgabe viele Beispiele?
Datum:
Jörg Wunsch schrieb: > Aber unbedingt auf die zweite Ausgabe achten! Mal ehrlich, wo außer in einem sehr gut sortierten Antiquariat (oder meinem Bücherregal) findet man die noch? Die zweite Ausgabe ist auf Deutsch Anfang der 90er Jahre erschienen ...
Datum:
M. B. schrieb: > Und das Lösungsbuch? Hat die Ausgabe viele Beispiele? Es hat viele Beispiele. Es hat viele Aufgaben. Und ob es ein Lösungsbuch gibt oder nicht, weiß ich nicht. Brauchst du aber auch nicht. Wenn du das Buch von Anfang an durcharbeitest, sagt dir dein Computer, ob deine Lösung richtig ist. Und mit mehr Erfahrung und Übung wird es dir so gehen wie allen: Sieht man sich seine ersten Lösungen gegen Ende des Durcharbeitens noch einmal an, erkennt man dann schon selbst, was man schlecht gelöst hat.
Datum:
Rufus Τ. Firefly schrieb: > Mal ehrlich, wo außer in einem sehr gut sortierten Antiquariat (oder > meinem Bücherregal) findet man die noch? Könnte ja sein, dass der TE das Buch in einem Antiquariat kaufen will. Auch die zweite Ausgabe kann man da sicher u. U. finden. Die zweite Ausgabe scheint aber auch gebraucht bei Amazon reichlich vorhanden zu sein. Die erste konnte ich (zum Glück ;) nicht entdecken.