Settings

Theme

C preprocessor internals

monoinfinito.wordpress.com

92 points by g3orge 12 years ago · 4 comments

Reader

jacobparker 12 years ago

Turns out the preprocessor is actually an organically grown pseudo language (as opposed to a properly designed language feature) inside C, which later got standardized through an incredibly complex set of rules and definitions.

This can be used to explain much of C. :)

ot 12 years ago

An impressive application of the C preprocessor is the Boost.Preprocessor library [1]. It basically implements a primitive (and bounded) version of Lisp inside the preprocessor.

I used it once to write DSLs to define data structures, where a few lines of code were expanded to hundreds of lines of templates, (de)serialization code, etc...

[1] http://www.boostpro.com/mplbook/preprocessor.html

tensaix2j 12 years ago

This reminds me of one of the assignments in cppgm.org, where you get to implement all those features. http://www.cppgm.org/pa4.html

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection