2009-11-25
Vortrag: Was eine WAF (nicht) kann
Gestern habe ich auf dem OWASP-Stammtisch München einen Vortrag zum Thema Was eine WAF (nicht) kann gehalten. Es gab jede Menge Diskussionen und hat mal wieder richtig Spaß gemacht :-)
2009-11-18
Kurioses vom C Präprozessor
Schauen wir uns mal dieses File an:
#define CPP1(s) #s
#define CPP2(s) CPP1(s)
char *a = CPP1(HELLO);
char *b = CPP2(HELLO);
CPP1() benutzt #s, den Operator im C-Preprozessor, der einen Namen in einen String umwandelt.
Eigentlich sollte man ja erwarten, das CPP1 und CPP2 identisch sind. Auf der ersten Blick ist das auch so:
$ gcc -E t.c
#...
char *a = "HELLO";
char *b = "HELLO";
Aber wenn man HELLO als Symbol definiert, ändert sich das Bild:
$ gcc -D HELLO=WORLD -E t.c
# ...
char *a = "HELLO";
char *b = "WORLD";
Wieder mal was über den C-Preprozessor gelernt.
Abonnieren
Posts (Atom)