When higher-level languages came along, programmers moving from
assembly code to a HLL would want the same sort of preprocessor
functionality. I know that IBM PL/I had %include, and I suspect that
other HLLs of the day had similar features.
What's very clear is that C did not invent include files or
conditional compilation, it merely carried on existing tradition.