www.mikrocontroller.net

Forum: PC-Programmierung Makro MAX und ?


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: M. B. (drumstick)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
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.

Autor: asdfg (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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
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!).

Autor: M. B. (drumstick)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Vielen Dank!

? Kurzform von if steht in keinem meiner zwei c Bücher!

Aber so ist es klar!!

Grüsse!

M.B.

Autor: asdfg (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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.

Autor: DirkB (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Das Stichwortist ist Ternärer Operator

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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).

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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.

Autor: M. B. (drumstick)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Und das Lösungsbuch? Hat die Ausgabe viele Beispiele?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
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 ...

Autor: Karl Heinz Buchegger (kbuchegg) (Moderator)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net