The preprocessor directives give instruction to the compiler to preprocess the information before actual compilation starts.
All preprocessor directives begin with #, and only white-space characters may appear before a preprocessor directive on a line. Preprocessor directives are not statements, so they do not end with a semicolon (;).
Property | Description |
---|---|
#define | It defines a sequence of characters, called symbol. |
#undef | It allows you to undefine a symbol. |
#if | It allows testing a symbol or symbols to see if they evaluate to true. |
#else | It allows to create a compound conditional directive, along with #if. |
#elif | It allows creating a compound conditional directive. |
#endif | Specifies the end of a conditional directive. |
#line | It lets you modify the compiler’s line number and (optionally) the file name output for errors and warnings. |
#error | It allows generating an error from a specific location in your code. |
#warning | It allows generating a level one warning from a specific location in your code. |
#region | It lets you specify a block of code that you can expand or collapse when using the outlining feature of the Visual Studio Code Editor. |
#endregion | It marks the end of a #region block. |
The #define preprocessor directive creates symbolic constants.
#define lets you define a symbol such that, by using the symbol as the expression passed to the #if directive, the expression evaluates to true. Its syntax is as follows:
#define PIusing System;namespace PreprocessorDAppl{class Program{static void Main(string[] args){#if (PI)Console.WriteLine("PI is defined");#elseConsole.WriteLine("PI is not defined");#endifConsole.ReadKey();//PI is defined}}}
You can use the #if directive to create a conditional directive. Conditional directives are useful for testing a symbol or symbols to check if they evaluate to true. If they do evaluate to true, the compiler evaluates all the code between the #if and the next directive.
#define DEBUG#define VC_V10using System;public class TestClass{public static void Main(){#if (DEBUG && !VC_V10)Console.WriteLine("DEBUG is defined");#elif (!DEBUG && VC_V10)Console.WriteLine("VC_V10 is defined");#elif (DEBUG && VC_V10)Console.WriteLine("DEBUG and VC_V10 are defined");#elseConsole.WriteLine("DEBUG and VC_V10 are not defined");#endifConsole.ReadKey();//DEBUG and VC_V10 are defined}}
Quick Links
Legal Stuff
Social Media