--- title: "C/C++ Preprocessor Reference" ms.date: "11/04/2016" helpviewer_keywords: ["preprocessor", "preprocessor, reference overview"] ms.assetid: e4a52843-7016-4f6d-8b40-cb1ace18f805 --- # C/C++ Preprocessor Reference The *C/C++ Preprocessor Reference* explains the preprocessor as it is implemented in Microsoft C/C++. The preprocessor performs preliminary operations on C and C++ files before they are passed to the compiler. You can use the preprocessor to conditionally compile code, insert files, specify compile-time error messages, and apply machine-specific rules to sections of code. ## In This Section [Preprocessor Directives](../preprocessor/preprocessor-directives.md)
Describes directives, typically used to make source programs easy to change and easy to compile in different execution environments. [Preprocessor Operators](../preprocessor/preprocessor-operators.md)
Discusses the four preprocessor-specific operators used in the context of the `#define` directive. [Predefined Macros](../preprocessor/predefined-macros.md)
Discusses predefined macros as specified by ANSI and Microsoft C++. [Pragmas](../preprocessor/pragma-directives-and-the-pragma-keyword.md)
Discusses pragmas, which offer a way for each compiler to offer machine- and operating system-specific features while retaining overall compatibility with the C and C++ languages. ## Related Sections [C++ Language Reference](../cpp/cpp-language-reference.md)
Provides reference material for the Microsoft implementation of the C++ language. [C Language Reference](../c-language/c-language-reference.md)
Provides reference material for the Microsoft implementation of the C language. [Building a C/C++ Program](../build/reference/c-cpp-building-reference.md)
Provides links to topics discussing compiler and linker options. [Visual Studio Projects - C++](../build/creating-and-managing-visual-cpp-projects.md)
Describes the user interface in Visual Studio that enables you to specify the directories that the project system will search to locate files for your C++ project.