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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Хаотическое поведение системы частиц молекулярной динамики (перевод с TrueBasic в C++) http://www.cyberforum.ru/cpp/thread1766865.html
Есть программа на языке True basic, она описывает хаотическое поведение системы частиц молекулярной динамики. Программа отрисовывает движение частиц, изначально частицы занимают некоторые координаты на плоскости, в ходе выполнения программы, частицы начинают двигаться, причем их скорость и ускорение изменяются. Проблема в том, что программу нельзя просто скопировать, скомпилировать и запустить....
C++ Создание аналога onEnterFrane(flash) в C++ Встал вопрос, как создать такую вещь в C++ которая будет обрабатывать кусок кода постоянно раз в 1/60 секунды (например)? Типо кусок кода программа выполнила и если осталось время(1/60 секунды) то дожидается конца этого времени и продолжает работать дальше. Это должно быть без костылей и оптимизировано http://www.cyberforum.ru/cpp/thread1766091.html
Массив объектов с разными свойствами C++
Всем доброго дня! На мк (stm32) у входов есть разные возможности. Для меня интересны: Discrete Analog Frequency Counter Не все входы обладают этими возможностями. Всего 24 входа. В моем случае только 4 могут считать кол-во импульсов и частоту. Я хочу создать общий класс для входов, в котором будет реализована защита по указанию типа входа. Сейчас у меня примерно так:
C++ Шифрование файла с использованием аттрактора Лоренца на C++
Добрый вечер! Ни у кого случайно нет исходников такой программы? Срочно нужно! Программа должна использовать аттрактор лоренца для шифрования текстового файла
C++ CUDA OpenCV C++ фильтр Собеля http://www.cyberforum.ru/cpp/thread1765746.html
Всем привет пишу прогу в C++( CUDA+ openCV) Задание звучало сл образом Напишите программу, в CUDA, в котором будет применять фильтр Собеля, рассчитанный с помощью графического процессора #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include "cuda_runtime.h" #include "device_launch_parameters.h"
C++ Поиск объектов с OpenCV Здравствуйте, не подскажите как найти тёмные круги с помощью opencv std::vector<cv::Vec3f> circles; cv::HoughCircles(gray, circles, CV_HOUGH_GRADIENT, 1, 60, 200, 20, 0, 0); for (size_t i = 0; i < circles.size(); i++) { Point center(cvRound(circles), cvRound(circles)); int radius = cvRound(circles); подробнее

Показать сообщение отдельно
ValeryS
Модератор
6541 / 5007 / 461
Регистрация: 14.02.2011
Сообщений: 16,652
21.06.2016, 16:01  [ТС]     Сравнение в препроцессоре
Цитата Сообщение от DrOffset Посмотреть сообщение
Макрос результат выражения не знает, т.к. оно посчитается на этапе компиляции. А препроцессор работает до этого. Это же базовая матчасть, собственно.
а как тогда вот это
C++
1
2
3
4
5
6
7
8
9
10
11
12
#define A  10
#define B  A+10
#define C  A+B
#if A==B
#endif
 
#if C==A+B
#warning "Work1"
#endif
#if C==30
#warning "Work2"
#endif
прекрасно вычисляет
C:\STM\project\RadioDMX\MyFile\UART_DMX.c(15): warning: #1215-D: #warning directive: "Work1"
#warning "Work1"
C:\STM\project\RadioDMX\MyFile\UART_DMX.c(18): warning: #1215-D: #warning directive: "Work2"
#warning "Work2"
Цитата Сообщение от DrOffset Посмотреть сообщение
Шаблон же - это средство времени компиляции.
вот я и боюсь что такого накомпилирует да и файлик хочу универсальный, чтобы и на Си и на плюсах тянул
пока вышел из положения так
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <stm32f10x.h>
 
 
#define DMX__USART 1
//#define DMX__USART 2
//#define DMX__USART 3
 
#if DMX__USART==1
    #define IRQDMX
        #define PortDmx GPIOA
        #define PinDmx_TX GPIO_Pin_9
        #define PinPmx_RX GPIO_Pin_10
        #define USARTDMX USART1
 
    #define  RCC_UART_ENABLE()   RCC_APB2PeriphClockCmd( RCC_APB2Periph_USART1,ENABLE)
        #define  RCC_GPIO_ENABLE()   RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA ,ENABLE)
    
 #elif DMX__USART==2
    #define IRQDMX
        #define PortDmx GPIOA
        #define PinDmx_TX GPIO_Pin_2
        #define PinPmx_RX GPIO_Pin_3
        #define USARTDMX USART2
    #define  RCC_UART_ENABLE()   RCC_APB2PeriphClockCmd( RCC_APB1Periph_USART2,ENABLE)
        #define  RCC_GPIO_ENABLE()   RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA ,ENABLE)
#elif DMX__USART==3
    #define IRQDMX
        #define PortDmx GPIOB
        #define PinDmx_TX GPIO_Pin_10
        #define PinPmx_RX GPIO_Pin_11
        #define USARTDMX USART3
    #define  RCC_UART_ENABLE()   RCC_APB2PeriphClockCmd( RCC_APB1Periph_USART3,ENABLE)
        #define  RCC_GPIO_ENABLE()   RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB ,ENABLE)
#else 
#error "uncorrect USART"
 
#endif
ввел еще один дефайн

но просто интересно это Keil дурит или не стандартно все
у кого то ведь работает

Добавлено через 2 минуты
Цитата Сообщение от DrOffset Посмотреть сообщение
Т.е. убери все приведения типов, и т.п. Чтобы дать препроцессору посчитать результат.
не могу, это базовый файл, от производителя микроконтроллера
изменив здесь, получу приключений в других местах
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru