5 AnswersNew Answer
#-> preprocessor preprocessor means before processing towards the program and before the compilation of source code preprosessor directive are processed like when we write the first line of code #include<iostream> that means before the processing of main program input output stream library's are included
i have to admit it's rather contradictory in itself, just like 'prehishoric'. i mean when we consider what 'history' means, then there isn't anything that comes before 'history' as it is also 'history'. but the definition has a specific meaning of 'history': 'written' history. so prehistoric means 'before *written* history'. Similarly, the 'preprocessing' still is processing, but it does come before other 'normal' processing. usually this 'normal' processing is specifically 'compiling' your code. i think of 'preprocessing' as 'precompiling'. and that has always made sense to me, and i've never found it to be inaccurate yet. but i've never been taught that either. just an observation from a programmer who has been programming for about 30 years now.
Martin Taylor, a preprocessor does more than 'merely simple text substitution'. but it seems the rest of your statement is probably accurate. a preprocessor can turn on and off whether a compiler gives certain warning messages too. this is more than simple text substitution.