\initial {#} \entry {\samp {##}}{18} \initial {A} \entry {arguments in macro definitions}{10} \entry {assertions}{36} \entry {assertions, undoing}{37} \initial {B} \entry {blank macro arguments}{12} \initial {C} \entry {cascaded macros}{29} \entry {commands}{3} \entry {commenting out code}{34} \entry {computed \samp {#include}}{5} \entry {concatenation}{18} \entry {conditionals}{30} \initial {E} \entry {expansion of arguments}{26} \initial {F} \entry {function-like macro}{10} \initial {H} \entry {header file}{3} \initial {I} \entry {including just once}{6} \entry {inheritance}{8} \entry {invocation of the preprocessor}{41} \initial {L} \entry {line control}{39} \initial {M} \entry {macro argument expansion}{26} \entry {macro body uses macro}{29} \entry {macros with argument}{10} \entry {manifest constant}{9} \initial {N} \entry {newlines in macro arguments}{30} \entry {null command}{40} \initial {O} \entry {options}{41} \entry {output format}{41} \entry {overriding a header file}{8} \initial {P} \entry {parentheses in macro bodies}{22} \entry {pitfalls of macros}{21} \entry {predefined macros}{13} \entry {predicates}{36} \entry {preprocessor commands}{3} \entry {prescan of macro arguments}{26} \entry {problems with macros}{21} \initial {R} \entry {redefining macros}{20} \entry {repeated inclusion}{6} \entry {retracting assertions}{37} \initial {S} \entry {second include path}{45} \entry {self-reference}{25} \entry {semicolons (after macro calls)}{23} \entry {side effects (in macro arguments)}{24} \entry {simple macro}{9} \entry {space as macro argument}{12} \entry {standard predefined macros}{13} \entry {stringification}{17} \initial {T} \entry {testing predicates}{36} \initial {U} \entry {unassert}{37} \entry {undefining macros}{20} \entry {unsafe macros}{24}