When preprocessing occurs a second pass is made to resolve some complex constructs. If a preprocessing directive is still unresolved after a first pass the second pass will resolve the rest. This is useful when using preprocessor directives in parameter fields, when doing preprocessing that requires calculating a string and when preprocessing is done within an include. The following three examples illustrate how Second Pass Preprocessing can be used.