Форум программистов, компьютерный форум, киберфорум
Наши страницы

Почему нельзя подставлять переменные в выражения #if #else? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В массиве все четные элементы заменить максимальным http://www.cyberforum.ru/cpp-beginners/thread1130253.html
В одномерном массиве все четные элементы заменить максимальным и отсортировать элементы массива по возрастанию.
C++ Поменять местами минимальный и максимальный элемент в каждом столбце матрицы Дано матрицу размера 5 x 10. Превратить матрицу, поменяв местами минимальный и максимальный элемент в каждом столбце. http://www.cyberforum.ru/cpp-beginners/thread1130252.html
Найти средние арифметические значения элементов каждой строки матрицы C++
Задать матрицу произвольным способом. Найти средние арифметические значения элементов каждой строки.
Найти количество элементов превышающих среднее арифметическое всех элементов массива C++
Дано одномерный массив из 15 целых чисел. Найти количество элементов превышающих среднее арифметическое всех элементов массива.
C++ Cколько раз встречаются числа с 4 одинаковыми цифрами http://www.cyberforum.ru/cpp-beginners/thread1130224.html
Здравствуйте.Мне нужна помощь. Для всех шестизначных натуральных чисел посчитать сколько раз встречаются числа, в записи которых присутсвует 4 одинаковые цифры. Вот что получилось. #include...
C++ Подсчет количества букв в файле, их кодирование и расшифровка Здравствуйте. Мне нужно составить программу, которая подсчитает количество каждой буквы в файле input.txt (в этом файле находится некоторый текст) и запишет полученные числа в файл file.txt. Это... подробнее

Показать сообщение отдельно
SatanaXIII
Супер-модератор
Эксперт С++
5619 / 2654 / 247
Регистрация: 01.11.2011
Сообщений: 6,553
Завершенные тесты: 1
26.03.2014, 14:42
Zla9_Kolu4ka, зачитайтесь вот из этого источника: Препроцессорные директивы в C/C++ (#include, #define и прочее) .
А именно:
4.2. Директивы #if, #else, #elif, #endif

Синтаксис директивы "#if" очень простой и по большому счёту совпадает с операциями условного исполнения в языке. Как-то особенно на этом останавливаться не буду, просто покажу все варианты использования. Единственное, что нужно отметить - обязательно должен быть "#endif", потому как без него препроцессор не сможет понять, в каком месте заканчивается директива "#if"
C
1
2
3
#if <условие>
...
#endif
C
1
2
3
4
5
#if <условие>
...
#else
...
#endif
C
1
2
3
4
5
6
7
8
9
#if <условие>
...
#elif <условие>
...
#elif <условие>
...
#else
...
#endif
Что касается условия, то хочется ещё раз отметить, что препроцессирование делается отдельно от компиляции, а потому в условии директивы "#if" НЕ могут использоваться никакие переменные из программы. В условии могут использоваться только целочисленные константные значения (которые могут быть значениями других макросов). Над этими константами можно выполнять операции сравнения "==", "!=", "<", "<=", ">", ">=". В условии могут использоваться логические операции "&&", "||", "!", круглые скобки, а так же некая конструкция "defined <macro_name>", значение которой истинно, если макрос <macro_name> определён, в противном случае значение ложно. Препроцессорные "#if'ы", так же, как и языковые, могут быть вложены друг в друга. В строках с директивами можно использовать комментарии
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru