by Simon Tatham This article describes a technique for using the C preprocessor to implement a form of metaprogramming in C, allowing a programmer to define custom looping and control constructions which behave syntactically like C's own for, while and if but manage control flow in a user-defined way. The technique is almost all portable C89, except that some constructions need the feature (availa