Explain use of preprocessor macro