Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
 
ValeryS
Модератор
6505 / 4971 / 459
Регистрация: 14.02.2011
Сообщений: 16,469
#1

Сравнение в препроцессоре - C++

21.06.2016, 10:24. Просмотров 642. Ответов 22
Метки нет (Все метки)

нужна условная компиляция
корректна ли такая конструкция (утрирую)
C++
1
2
3
4
5
6
#define A 10
#define B 10
#if A==B
 
..............
#endif
Добавлено через 8 минут
не получилось утрировать
на такую конструкцию Keil не ругается
вот кусок реального кода
где то в заголовочных файлах
C++
1
#define USART3              ((USART_TypeDef *) USART3_BASE)
еще где то
C++
1
2
3
4
5
#define PERIPH_BASE           ((uint32_t)0x40000000)
//....................................
#define APB1PERIPH_BASE       PERIPH_BASE
// ...............................................
#define USART3_BASE           (APB1PERIPH_BASE + 0x4800)

мой файл
C++
1
2
3
4
5
#define USARTDMX USART3
 
#if USARTDMX == USART3
//......................
#endif
ругается собака из за того что указатели?

Добавлено через 7 минут
вот ошибки
C:\STM\project\RadioDMX\MyFile\UART_DMX.c(14): error: #29: expected an expression
#if USARTDMX==USART3
C:\STM\project\RadioDMX\MyFile\UART_DMX.c(14): error: #59: function call is not allowed in a constant expression
#if USARTDMX==USART3
C:\STM\project\RadioDMX\MyFile\UART_DMX.c(14): error: #18: expected a ")"
откуда он функцию взял?
такое ошушенье, что со скобками запутался
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2016, 10:24     Сравнение в препроцессоре
Посмотрите здесь:

Сравнение скорости C++ Builder
сравнение символа C++
C++ Сравнение 2 строк
Сравнение по модулю C++
ЛР: Сравнение сортировок C++
Сравнение строк C++
C++ Сравнение изображений
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6505 / 4971 / 459
Регистрация: 14.02.2011
Сообщений: 16,469
21.06.2016, 16:50  [ТС]     Сравнение в препроцессоре #21
Цитата Сообщение от _liv_ Посмотреть сообщение
ValeryS, вот так работает:
как говорит доктор
Цитата Сообщение от DrOffset Посмотреть сообщение
Как только в дело входит типизация, то лавочка сворачивается Типизация - дело компилятора.
посему не буду экспериментировать, оставлю лишний дефайн
а то завтра компилятор сменю и опять блох ловить
DrOffset
6851 / 4062 / 927
Регистрация: 30.01.2014
Сообщений: 6,859
21.06.2016, 17:01     Сравнение в препроцессоре #22
Цитата Сообщение от vxg Посмотреть сообщение
Borland C++ Builder 6
Ну, видимо у него особо умный препроцессор (что неудивительно, учитывая его дружбу с делфи из коробки).
Скажем так, это не мейнстрим
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2016, 19:50     Сравнение в препроцессоре
Еще ссылки по теме:

C++ Builder Сравнение звуков в c++
C++ Сравнение C++ с С#
C++ сравнение строк
C++ "Циклы" на препроцессоре
Побитовое сравнение C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
elch10
38 / 21 / 4
Регистрация: 27.04.2015
Сообщений: 164
Завершенные тесты: 2
21.06.2016, 19:50     Сравнение в препроцессоре #23
Вот что значит выстрелить себе в ногу
Yandex
Объявления
21.06.2016, 19:50     Сравнение в препроцессоре
Ответ Создать тему
Опции темы

Текущее время: 20:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru