Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2016, 22:50   #1
Владимрл
Пользователь
 
Регистрация: 04.04.2015
Сообщений: 23
По умолчанию директивы условной компиляции

Здравствуйте !
Подскажите пожалуйста, для чего в этой программе используются директивы условной компиляции, программа рабочая ( #if, #elif, #else, #endif ) ?
Можно же написать программу без них. Как-то не понятно для чего тут директивы, воспринимается это как не нужная выдумка. Может это и нужно, но когда и в каких ситуациях представить не могу ???, программа рабочая ( #if, #elif, #else, #endif ) ?




Код:
//  Листинг 12.4. Применение директив условной компиляции
  //  #define VAR1 
  //  #define VAR2
 
 using System;
 namespace Pavlovs_289._1
 {
    class Class1
    {
        #if VAR1
               static void F(){ Console.WriteLine( "Вариант 1" ); }
        #elif VAR2
               static void F(){ Console.WriteLine( "Вариант 2" ); }
        #else   
               static void F(){ Console.WriteLine( "Основной  вариант" ); }
        #endif
             static void Main()
             {
                   F();
                   Console.ReadKey();
             }
     }
 }
Владимрл вне форума Ответить с цитированием
Старый 24.05.2016, 10:58   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Как бЭ, самоочевидно, что это учебный пример по директивам условной компиляции, и они тут нужны только чтобы показать, как ими пользоваться. В реальных задачах, однако же, приемы их применения аналогичные этому - когда разработчиком заложены разные варианты исполнения неких блоков, иногда взаимоисключающие, иноглда вложенные, иногда "автоматически подстраивающиеся" под окружение, в котором выполняется компиляция.
phomm вне форума Ответить с цитированием
Старый 24.05.2016, 11:27   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
в каких ситуациях представить не могу
Код:
#if DEBUG
    PrintDebugInfo();
#endif
Код:
#if WIN32
    CreateProcess(...);
    ...
#elif LINUX
    fork();
    ...
#endif
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Команды условной перадачи управления Вычислить выражение aleksandrln Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 21.06.2011 17:39
Директивы ImmortalAlexSan Общие вопросы Delphi 4 07.11.2010 15:25
Директивы. VintProg Свободное общение 3 10.11.2009 14:35
использование директив условной компиляции Ferza Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 24.06.2009 12:21
Директивы компиляции joker Общие вопросы Delphi 3 10.06.2008 09:41