Makro MAX und ?

OP #2641818
Lesenswert?
• ▲
▼
Guten Tag!

Ich lerne c mit dem dev-c++.

nun bin ich auf folgende Übung gestossen:

Makros:
1
#include<stdio.h>
2
#define MAX(a, b) ((a) < (b) ? (b) : (a))
3

4
int main(int argc, char *argv[])
5
{
6
  int zahla=8, zahlb=7;
7
  printf("Maximum: %d\n", MAX(zahla, zahlb));  
8
  getchar();
9
  return 0;
10
}

kann man dies erklären, vorallem die Bedeutung von ?

Danke und Gruss!

M.B.
Gast #2641826
Lesenswert?
• ▲
▼
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
1
int max(const int a, const int b)
2
{
3
  if(a<b)
4
    return b;
5
  else
6
    return a;
7
}
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!).
Gast #2641946
Lesenswert?
• ▲
▼
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.
Persönliche Seite #2642058
Lesenswert?
• ▲
▼
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).
Moderator Persönliche Seite #2642062
Lesenswert?
• ▲
▼
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.
#2642304
Lesenswert?
• ▲
▼
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.
Moderator Persönliche Seite #2643023
Lesenswert?
• ▲
▼
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren