Hallo leute, wieso läuft das nicht durch meinen Compiler? #define 1 ein #define 2 zwei #define 3 drei #define 4 vier char zahlen[2][2] = {"1undzwanzig","2undzwanzig"} #undef 1 #undef 2 #undef 3 #undef 4 Die Meldung...DevC++ macro names must be identifiers Danke
> macro names must be identifiers
Da stehts doch.
Es gibt klare Regeln, wie ein "identifier" aufgebaut zu sein hat. Und
dazu gehört, daß der nicht mit einer Ziffer beginnen darf.
Und Makronamen unterliegen den gleichen Regeln.
Gästchen schrieb: > char zahlen[2][2] = {"1undzwanzig","2undzwanzig"} Das geht sowieso schief, das Wort passt da niemals rein :-)
ja, weis ich - war nur geschmiere.... hat jemand spontan nen Einfall wie ich Zahlen auschreibe(also als in ein char[][])?
Gästchen schrieb: > ja, weis ich - war nur geschmiere.... > > hat jemand spontan nen Einfall wie ich Zahlen auschreibe(also als in ein > char[][])? Jedes C Buch sollte dir eigentlich dazu eine Anregung liefern #define s_1 "ein" #define s_2 "zwei" #define s_20 "zwanzig" char zahlen[][] = { s_1 "und" s_20, s_2 "und" s_20 } Allerdings: wozu? Solche Dinge setzt man sinnvollerweise zur Laufzeit aus Einzelteilen zusammen, wenn man sie braucht. Denn ansonsten müllt man sich den Speicher ordentlich zu.
Floh schrieb: > Gästchen schrieb: >> char zahlen[2][2] = {"1undzwanzig","2undzwanzig"} > > Das geht sowieso schief, das Wort passt da niemals rein :-) Außerdem wüßte, wenn das Definieren solcher Makros ginge, der Compiler nicht, was er mit
1 | zahlen[zwei][zwei] |
anfangen sollte.
Karl heinz Buchegger schrieb: > char zahlen[][] = { s_1 "und" s_20, s_2 "und" s_20 } Das war jetzt aber auch nicht sooo viel besser :-)
Klaus Wachtler schrieb: > Karl heinz Buchegger schrieb: >> char zahlen[][] = { s_1 "und" s_20, s_2 "und" s_20 } > > Das war jetzt aber auch nicht sooo viel besser :-) Das Problem ist, das ich nicht erraten kann, was denn eigentlich die Absicht hinter dem Ganzen ist. Da ein beliebtes Lehrbeispiel darin besteht die Zahlen von 1 bis 100 in Textform auszugeben, denke ich das das hier nicht soooo weit davon entfernt ist. Auf jeden Fall aber wollte ich dem TO zeigen, dass die Einschränkung, dass Makronamen mit einem Buchstaben anfangen müssen, so schlimm auch wieder nicht ist und dass der Compiler Strings zusammenhängen muss. Ob er damit was anfangen kann: keine Ahnung. Denn wie gesagt: Ich weiß och nicht einmal was es werden soll und welche Technik daher angebracht ist :-)
Das ist hier doch normal. Wenigstens die Technik zur Abhilfe ist klar: K&R (Mein Gemecker bezog sich aber eigentlich darauf, daß du beide Feldgrenzen frei gelassen hattest. Das findet ein Compiler dann doch zu lasch.)
Klaus Wachtler schrieb: > (Mein Gemecker bezog sich aber eigentlich darauf, daß du beide > Feldgrenzen frei gelassen hattest. Das findet ein Compiler dann > doch zu lasch.) Irgendwas muss der TO ja schliesslich auch selber können :-)
Langsam verstehe ich dein Verhalten hier. Ich glaube sowas heißt in Medizinerkreisen "manischer Optimismus".
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.