Hallo Forum, folgendes vereinfachtes Beispiel habe ich neulich gesehen. Was macht hier const (a,b) ??? Danke. const (a,b) abc[3] = {def,ghi,jkl}; Grüße
foobar schrieb: > Nen Syntax-Error. War wohl nichts mit der Vereinfachung Naja, da er zumindest 3 token vorher (für uns versteckt) declariert hat, ... Wer weiss, zu was a,b und const expandieren?
Achim S. schrieb: > Wer weiss, zu was a,b und const expandieren? Gut, const könnte als Makro definiert sein. Dann würden es die meisten Compiler vermutlich durchlassen, aber verboten ist es trotzdem.
Rolf M. schrieb: > Gut, const könnte als Makro definiert sein. Oh, es gibt (glaube ich) ganz fiese sachen. const könnte eine Funktions-Deklaration aufmachen, a macht die klammer zu und ein neues makro auf, dass 2 Parameter nimmt, wobei b der zweite ist.
1 | #define const void foo
|
2 | #define a void); FOO2(1
|
3 | #define FOO2(x,y) int
|
4 | |
5 | sollte nacheinander expandieren zu |
6 | void foo (a,b) |
7 | void foo (void); FOO2(1,b) |
8 | void foo (void); int |
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.