Probleme mit #define
-
ich habe folgenden quellcode:
#define HBAR 1.05457267E-34; ... k_factor = HBAR * w_0 * A_eff * v_g;und bekomme dann solch einen kompilerfehler:
error: invalid type argument of 'unary *'ich löse das problem dann so:
#define HBAR 1.05457267E-34; ... double tmp = HBAR; k_factor = tmp * w_0 * A_eff * v_g;das work-around find ich häßlich. was kann ich machen?
-
PaRu schrieb:
was kann ich machen?
Das Semikolon bei der Definedirektive weglassen.
-
Oder das #define ersetzen durch
const double HBAR = 1.05457267E-34;.
-
Ah !
Schönes Beispiel dafür, dass #defines in bestimmten Situationen fehleranfällig (und schlecht zu warten) sind.
Gruß,
Simon2.
-
Danke
-
#define scheint eine magische Anziehungskraft auf Newbies auszuüben, der sie einfach nicht entrinnen können.

-
pock schrieb:
#define scheint eine magische Anziehungskraft auf Newbies auszuüben, der sie einfach nicht entrinnen können.

Nee das liegt daran das diverse Leute die sich als Pros ausgeben einfach kein const kennen. Auf diese "Idioten" fallen Newbies einfach rein und wir, die Kenner der Scene haben dann immer das Problem aus den Newbies richtig gute Coder zu machen, da sie von anderen Verhunzt wurden. So sieht es aus.
-
Kenner der Scene schrieb:
pock schrieb:
#define scheint eine magische Anziehungskraft auf Newbies auszuüben, der sie einfach nicht entrinnen können.

Nee das liegt daran das diverse Leute die sich als Pros ausgeben einfach kein const kennen. Auf diese "Idioten" fallen Newbies einfach rein und wir, die Kenner der Scene haben dann immer das Problem aus den Newbies richtig gute Coder zu machen, da sie von anderen Verhunzt wurden. So sieht es aus.
Trifft auch auf "Pointergehampel" und "rumge-new-e" (wenn nicht gar malloc) statt string, vector und Stack zu.
Gruß,
Simon2.