Makrofrage
-
Wie wird folgender Text vom Präprozessor übersetzt:
#define Test(a,b) int main() { Test(17,3); }Es wird schön brav übersetzt, nur steht in main dann auch das was ich erreichen wollte, nämlich nichts? Danke für eure Hilfe

-
Kurz: Ja

Der Präprozessor arbeitet wirklich per Textersetzung - und wenn ein Makro als "leer" definiert ist, wird es gegen eine leere Zeichenfolge ersetzt. Also bleibt von deinem Quelltext noch:
int main() { ; }(das Semikolon gehört nicht zum Makronamen und bleibt deshalb stehen)
-
doch da steht dann ';'

BR
evilissimo