Diskussion:C-Programmierung: Präprozessor

Aus Wikibooks
Zur Navigation springen Zur Suche springen

ich habe mal gehört, dass man mit den Zeichen ## in einem define soz. einen string zusammenfügen kann, also:

#define WORT(wort) \
int wort ## _angeklebt; \
char wort ## _an2;

mit dem Ergebniss, WORT(test) ergibt:

       int  test_angeklebt;
       char test_an2;
  1. Gehört das hierher?
  2. Und wo finde ich genaue Infos darüber?
  3. und wie heist das?


zu 1) It's a wiki!
zu 2) Wenn dieses Thema in diesem Buch nicht erörtert wird, dann könnte vielleicht die umfangreiche C-Programmierung: Literatur und Weblinks-Seite weiterhelfen. Alternativ oder ergänzend könnte auch ein Suchmaschinenlauf nach dem unter 3) genannten Begriff erfolgversprechend sein.
zu 3) Token-Pasting Operator
--Tekton 19:00, 9. Nov. 2006 (CET)

defined[Bearbeiten]

Die Beschreibung vom #defined gefällt mir überhaupt nicht. 'defined' ist ein unärer Operator und kann z.B: auch so eingesetzt werden:

#if defined symbol1 || defined symbol2

Das geht allerdings nicht aus der Beschreibung hervor. Die erweckt eher den Eindruck, dass 'if defined' ausschließlich die alternative Schreibweise zu '#ifdef' ist.

-- Lemmi, 2007-07-21

pragma[Bearbeiten]

IMHO gibt es schon einige Pragmas, die von den meisten Compilern interpretiert werden. Z.b. #pragma pack ist so ein Fall, und fuer viele Dinge elementar. Vielleicht kann man ein paar lohnenswerte pragmas sammeln und dann hier entscheiden, welche genuegend und auch genuegend gleichfoermig verbreitet sind? --Käptn Weltall 16:57, 7. Mai 2009 (CEST)

Unverständlich[Bearbeiten]

  • wobei KONSTANTE wieder jeder gültige Bezeichner sein darf und Konstante ist der Wert oder Ausdruck durch den KONSTANTE ersetzt wird.
  • #elif wird verwendet, bevor es erklärt wird. Die Erklärung taugt nichts.

-- Klaus 21:48, 1. Aug. 2009 (CEST)