Latest web development tutorials

директивы # препроцессора C

Проинструктировать препроцессор компилятора до фактического начала сведении информации предварительной обработки.

Все директивы препроцессора начинаются с символа #. И на одной строке, только пустые символы могут появляться перед директивой препроцессора. Препроцессор Директива не является утверждением, так что они не являются точкой с запятой (;) конец.

C # компилятор не имеет отдельный предварительный процессор, однако, хотел бы иметь отдельный препроцессор, как инструкция обрабатывается. В C # директивы препроцессора для условной компиляции работы. С и C ++, не имеют различные инструкции, они не используются для создания макросов. Директива препроцессора должна быть единственной инструкцией по этой линии.

Список директив препроцессора C #

В следующей таблице перечислены C # директивы препроцессора доступны:

预处理器指令描述
#define它用于定义一系列成为符号的字符。
#undef它用于取消定义符号。
#if它用于测试符号是否为真。
#else它用于创建复合条件指令,与 #if 一起使用。
#elif它用于创建复合条件指令。
#endif指定一个条件指令的结束。
#line它可以让您修改编译器的行数以及(可选地)输出错误和警告的文件名。
#error它允许从代码的指定位置生成一个错误。
#warning它允许从代码的指定位置生成一级警告。
#region它可以让您在使用 Visual Studio Code Editor 的大纲特性时,指定一个可展开或折叠的代码块。
#endregion它标识着 #region 块的结束。

#define препроцессора

#define препроцессорная создает символические константы.

#define позволяет определить символ, таким образом, что, за счет использования символа передается выражение директивы #if, как выражение истинно. Его синтаксис выглядит следующим образом:

#define символ

Следующая программа иллюстрирует этот момент:

#define PI 
с помощью системы;
пространство имен PreprocessorDAppl
{
   класс программы
   {
      статической силы основных (String [] агдз)
      {
         #if (PI)
            Console.WriteLine ( "PI определяется");
         #else
            Console.WriteLine ( "PI не определен");
         #endif
         Console.ReadKey ();
      }
   }
}

Когда приведенный выше код компилируется и выполняется, он дает следующие результаты:

PI определяется

Условные инструкции

Вы можете использовать директиву #if для создания условной инструкции. Условные инструкции для проверки, является ли истинным символом. Если это правда, то компилятор будет выполнять код между #if и следующей инструкции.

Условный синтаксис инструкции:

#if символ [символ оператора] ...

Отличающийся тем,что символ является символическое имя для тестирования. Вы можете также использовать истинные и ложные, или символ помещается перед оператором отрицания.

операторные символыиспользуются для оценки символа оператора. Операторы могут быть одним из следующих операторов:

  • == (Равенство)
  • ! = (Неравенство)
  • && (И)
  • || (Или)

Вы также можете использовать скобки для групповых символов и операторов. Условные инструкции в версии отладки или компиляции указанной конфигурации скомпилированный код. Условный инструкции , начиная с директивы#if, должны быть отображены в инструкции #ENDIFпрекращается.

Следующая программа демонстрирует использование условных инструкций:

#define DEBUG
#define VC_V10
с помощью системы;
общественного класса TestClass
{
   государственной статической силы Main ()
   {

      #if (DEBUG &&! VC_V10)
         Console.WriteLine ( "DEBUG определен");
      #elif (! DEBUG && VC_V10)
         Console.WriteLine ( "VC_V10 определен");
      #elif (DEBUG && VC_V10)
         Console.WriteLine ( "DEBUG и VC_V10 определены");
      #else
         Console.WriteLine ( "DEBUG и VC_V10 не определены");
      #endif
      Console.ReadKey ();
   }
}

Когда приведенный выше код компилируется и выполняется, он дает следующие результаты:

Отлаживать и VC_V10 определены