Preprocessor Directive

Definition - What does Preprocessor Directive mean?

Preprocessor directives are lines included in a program that being with the character #, which make them different from a typical source code text. They are invoked by the compiler to process some programs before compilation. Preprocessor directives change the text of the source code and the result is a new source code without these directives.

Although preprocessing in C# is conceptually similar to that in C/C++, it is different in two aspects. First, preprocessing in C# does not involve a separate step for preprocessor execution before compilation. It is processed as a part of the lexical analysis phase. Second, it cannot be used to create macros. In addition, the new directives #region and #unregion have been added in C# along with the exclusion of some directives used earlier (#include is a notable directive whose use is replaced with "using" to include assemblies).

Java does not support preprocessor directives.

Techopedia explains Preprocessor Directive

A preprocessor directive is usually placed in the top of the source code in a separate line beginning with the character "#", followed by directive name and an optional white space before and after it. Because a comment on the same line of declaration of the preprocessor directive has to be used and cannot scroll through the following line, delimited comments cannot be used. A preprocessor directive statement must not end with a semicolon (;). Preprocessor directives can be defined in source code or in the common line as argument during compilation.

Examples for preprocessing directives that can be used in C# include:

  • #define and #undef: To define and undefine conditional compilation symbols, respectively. These symbols could be checked during compilation and the required section of source code can be compiled. The scope of a symbol is the file in which it is defined.
  • #if, #elif, #else, and #endif: To skip part of source code based on conditions. Conditional sections may be nested with directives forming complete sets.
  • #line: To control line numbers generated for errors and warning. This is mostly used by meta-programming tools to generate C# source code from some text input. It is generally used to modify the line numbers and source file names reported by the compiler in its output.
  • #error and #warning : To generate errors and warnings, respectively. #error is used to stop compilation, while #warning is used to continue compilation with messages in the console.
  • #region and #endregion :To explicitly mark sections of source code. These allow expansion and collapse inside Visual Studio for better readability and reference.
Share this:

Connect with us

Email Newsletter

Join thousands of others with our weekly newsletter

Resources
The 4th Era of IT Infrastructure: Superconverged Systems
The 4th Era of IT Infrastructure: Superconverged Systems:
Learn the benefits and limitations of the 3 generations of IT infrastructure – siloed, converged and hyperconverged – and discover how the 4th...
Approaches and Benefits of Network Virtualization
Approaches and Benefits of Network Virtualization:
Businesses today aspire to achieve a software-defined datacenter (SDDC) to enhance business agility and reduce operational complexity. However, the...
Free E-Book: Public Cloud Guide
Free E-Book: Public Cloud Guide:
This white paper is for leaders of Operations, Engineering, or Infrastructure teams who are creating or executing an IT roadmap.
Free Tool: Virtual Health Monitor
Free Tool: Virtual Health Monitor:
Virtual Health Monitor is a free virtualization monitoring and reporting tool for VMware, Hyper-V, RHEV, and XenServer environments.
Free 30 Day Trial – Turbonomic
Free 30 Day Trial – Turbonomic:
Turbonomic delivers an autonomic platform where virtual and cloud environments self-manage in real-time to assure application performance.