dober.man
17.01.2010, 17:09
Появилась недавно у меня задача компиляции программы под разные устройства. Ряд устройств в моём случае обладают специфическими возможностями и для них задействуются специальные библиотеки, а для некоторых обычных устройств — эти библиотеки надо исключать. Можно конечно комментировать каждый раз — но включений довольно много и такой подход весьма проблематичен. Но есть очень хороший выход из этой ситуации, называется он условная компиляция.
Для условной компиляции используются директивы: #define, #if, #else, #endif.
Как обычно долго рассуждать как это использовать не буду, просто приведу пример:
#define PARAM1
#if PARAM1
Console.Write("Defined PARAM1");
#else
Console.Write("Not defined PARAM1");
#endif
При этом будет скомпилирован код:
Console.Write("Defined PARAM1");
//#define PARAM1
#if PARAM1
Console.Write("Defined PARAM1");
#else
Console.Write("Not defined PARAM1");
#endif
При этом будет скомпилирован код:
Console.Write("Not defined PARAM1");
Вот и всё.
Для условной компиляции используются директивы: #define, #if, #else, #endif.
Как обычно долго рассуждать как это использовать не буду, просто приведу пример:
#define PARAM1
#if PARAM1
Console.Write("Defined PARAM1");
#else
Console.Write("Not defined PARAM1");
#endif
При этом будет скомпилирован код:
Console.Write("Defined PARAM1");
//#define PARAM1
#if PARAM1
Console.Write("Defined PARAM1");
#else
Console.Write("Not defined PARAM1");
#endif
При этом будет скомпилирован код:
Console.Write("Not defined PARAM1");
Вот и всё.