Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Применение директив условной компиляции, C#

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Vladimirll

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте !  
 Подскажите пожалуйста, для чего в этой программе используются директивы условной компиляции, программа рабочая ( #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();
             }
     }
 }

Всего записей: 66 | Зарегистр. 07-07-2015 | Отправлено: 22:37 20-05-2016
VladimirMagus



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Это нужно к примеру для того случая, когда ты делаешь полную и урезанную версию программы. Директивами ты размечаешь участки кода, что не войдут в урезанную версию.
 
А вообще - глянь коротенькое видео на ютюбе.

Всего записей: 603 | Зарегистр. 09-05-2008 | Отправлено: 03:49 21-05-2016
Vladimirll

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VladimirMagus
 
 
Спасибо !  
 
Можете еще немного пояснить, в смысле принципиального понимания ?
 
Использование директив препроцессора : они используются  для  того,  чтобы  исключить  компиляцию  отдельных  частей  программы.
 
На примере данной программы, что здесь происходит по другому работа компилятора, чем в обычной программе, без директив препроцессора ?

Всего записей: 66 | Зарегистр. 07-07-2015 | Отправлено: 16:51 21-05-2016
NeoAnomaly

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Можете еще немного пояснить, в смысле принципиального понимания ?  

Vladimirll, думаю, для принципиального понимания стоит уяснить, что в начале исходный текст обрабатывается препроцессором, а только потом отдаётся компилятору. Директивы условной компиляции - это инструкции для препроцессора: каким образом обработать текст.
 
В случае с условной компиляцией, препроцессор убирает из исходного кода блоки, которые заключены между директивами с результатом проверки FALSE.
 
Т.е. другими словами, например:
 

Код:
 
        #if VAR1  
               static void F(){ Console.WriteLine( "Вариант 1" ); }  
        #else    
               static void F(){ Console.WriteLine( "Основной  вариант" ); }  
        #endif  
 

 
Если VAR1 == TRUE, то к компилятору попадёт только:

Код:
 
               static void F(){ Console.WriteLine( "Вариант 1" ); }  
 

про существование другого метода он даже не подозревает.

Всего записей: 418 | Зарегистр. 23-03-2010 | Отправлено: 19:03 21-05-2016
Vladimirll

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NeoAnomaly
 
 
      Спасибо !
 
   Ваше пояснение по существу( практично !!! ), что я и хотел понять !
 
И последнее, зачем в программе используется подход такого рода, через директивы условной компиляции   ?  ( в данном случае #if, #elif, #else, #endif )
 
 
 
   В каких ситуациях необходим такой подход ?
 

Всего записей: 66 | Зарегистр. 07-07-2015 | Отправлено: 22:21 22-05-2016
Alexzzy

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vladimirll
Ну ведь ответили уже.

Цитата:
Это нужно к примеру для того случая, когда ты делаешь полную и урезанную версию программы.

Еще варианты - сборка программы под разные операционные системы, библиотеки, компоненты и т.п., когда код может отличаться.

Всего записей: 1474 | Зарегистр. 10-07-2013 | Отправлено: 02:45 23-05-2016
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Применение директив условной компиляции, C#


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru