Preprocessor directives are already in binary form so dont get compiled ..get attached during compilation of rest of the codes and are executed when program is run . Moreover when any inbuilt function is executed, it searches for the syntax and then the preprocessor is executed or for any declaration.