1. When does the preprocessor run relative to compilation?
2. What does #define create?
3. Why should macro parameters be wrapped in parentheses, like ((x)*(x))?
4. What is the default storage class of a local variable?
5. What happens to a static local variable's value between function calls?
6. What does 'extern' allow you to do?
7. What is the purpose of a header guard (#ifndef/#define/#endif)?
8. Which of these is NOT a valid C data type?
9. What is the correct way to declare a function that returns nothing?
10. Which compilation stage checks if tokens follow the language's grammar?