директивы # препроцессора 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 определены