PreprozesorAnweisungen mit cast
-
Die PreprozesorAnweisungen mit cast (int)
#define Mes 10
#if (int) Mes*3/4
const int botto=5;
#endifführen zu fatal error C1017: Ungueltiger Ausdruck fuer Ganzzahlkonstante
Die PreprozesorAnweisungen ohne cast
#define Mes 10
#if Mes*3/4
const int botto=5;
#endifführen zu keinem error.
Wie kann man erreichen, dass nur der ganzzahlige Anteil von Mes*3/4 als Konstantenausdruck von #if verwendet wird.
Es soll für beliebige Werte für Mes, als nicht nur für 10 funktionieren.
-
Afaik rechnet der Präprozessor sowieso mit Ganzzahlen. (und selbst wenn nicht - der Ausdruck "Mes*3/4" wird in Ganzzahlarithmetik berechnet, weil keine Gleitkomma-Zahlen beteiligt sind)
PS: Übrigens ist der Ausdruck als #if Bedingung eher sinnlos.