main.gif (47332 bytes)

InterReklama
InterReklama Advertising

Р Е К Л А М А

Условная компиляция

TBN 100x100
TBN.ru

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Условные конструкции препроцессора позволяют компилировать или пропускать часть программы в зависимсти от выполнения некоторого условия. Условие может принимать одну из описываемых ниже форм.

#if константное_выражение

Проверяется значение выражения, составленного из констант и если оно не равно нулю, компилируется (включается) последующий текст.

#ifdef идентификатор

Последующий тест компилируется, если "идентификатор" уже был опредеоен для препроцессора в команде #define.

#ifndef идентификатор

Последующий текст компилируется, если "идентификатор" в данный момент не определен. Конструкция

#undef идентификатор

исключает "идентификатор" из списка определенных для препроцессора имен. За любой из трех условных команд может следовать произвольное число строк текста, содержащих, возможно, команду вида #else и заканчивающихся #endif. Если проверяемое условие справедливо, то строки между #else и #endif игнорируются. Если же проверяемое условие не выполняется, то игнорируются все строки между проверкой и командой #else, а если ее нет, то командой #endif.

  Приведенная на примере 6.7 программа иллюстрирует применение некоторых из рассмотренных выше команд, обеспечивающих условную компиляцию.

       Пример 6.7

#define SIZE 16
#include stdio.h
main()
{
char c='A';
#ifdef SIZE
  int x=123;
  printf("x=%d\n",x);
#else
  static char x[SIZE]="информатика";
  printf("x=%s\n",x);
#endif
  printf("%c\n",c);
}
back.gif (1087 bytes)ind.gif (1892 bytes)next.gif (1100 bytes)
Hosted by uCoz