реклама на сайте
подробности

 
 
> Можно ли в keil разбить #define на несколько строк ?
MiklPolikov
сообщение Sep 27 2013, 12:48
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Вопрос : есть ли способ в Keil записать такую строку

#define VOLTAGE_RANGE_1 {PWR->CR &=~ PWR_CR_VOS_1; PWR->CR |= PWR_CR_VOS_0;}

в виде двух

#define VOLTAGE_RANGE_1 {PWR->CR &=~ PWR_CR_VOS_1;
PWR->CR |= PWR_CR_VOS_0;}

?


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Sep 27 2013, 19:14
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(ViKo @ Sep 27 2013, 21:55) *
А я иногда делаю так
Код
#define WDELAY_RESTART();        \
  TIM7->EGR = TIM_EGR_UG;        \
  TIM7->SR = 0;                \
  TIM7->CR1 |= TIM_CR1_CEN;

Не буду оппонировать "монстрам от программирования", но случаи "а если..." мне кажутся надуманными.

Чудовищно. В этом случае if(xxx) WDELAY_RESTART(); просто молча породит неправильный код.
Вам кажется надуманным использование оператора "if"?



Цитата(Allregia @ Sep 27 2013, 20:55) *
По моему, так понятнее, без do..while.

do {} while(0) - стандартная конструкция, она не должна быть непонятна в принципе.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Sep 27 2013, 19:34
Сообщение #3


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(aaarrr @ Sep 27 2013, 22:14) *
Чудовищно. В этом случае if(xxx) WDELAY_RESTART(); просто молча породит неправильный код.
Вам кажется надуманным использование оператора "if"?

В данном случае - да.
Тем более, я всегда могу написать
Код
if (xxx) {
  WDELAY_RESTART();
}
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 27 2013, 19:39
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(ViKo @ Sep 27 2013, 23:34) *
В данном случае - да.

Тогда рекомендую убрать (); в конце макроса, дабы сразу было видно, что это лажа, а не нормальная языковая конструкция.

Цитата(ViKo @ Sep 27 2013, 23:34) *
Тем более, я всегда могу написать

Вы - возможно, если вспомните. А кто-то другой получит сюрприз.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Sep 27 2013, 19:41
Сообщение #5


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(aaarrr @ Sep 27 2013, 22:39) *
Тогда рекомендую убрать (); в конце макроса, дабы сразу было видно, что это лажа, а не нормальная языковая конструкция.
Вы - возможно, если вспомните. А кто-то другой получит сюрприз.

На то даны БОЛЬШИЕ_БУКВЫ.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 27 2013, 19:44
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(ViKo @ Sep 27 2013, 23:41) *
На то даны БОЛЬШИЕ_БУКВЫ.

Т.е. теперь БОЛЬШИЕ_БУКВЫ всегда оборачивать в {} безопасности для?

Зачем писать нарочито плохо, если можно без каких бы то ни было усилий написать хорошо и правильно?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Sep 27 2013, 20:04
Сообщение #7


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(aaarrr @ Sep 27 2013, 22:44) *
Т.е. теперь БОЛЬШИЕ_БУКВЫ всегда оборачивать в {} безопасности для?

Не всегда. Только функции БОЛЬШИЕ_БУКВЫ();
КОНСТАНТЫ - не нужно.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- MiklPolikov   Можно ли в keil разбить #define на несколько строк ?   Sep 27 2013, 12:48
- - megajohn   Код#define VOLTAGE_RANGE_1 {\ PWR->CR ...   Sep 27 2013, 12:53
|- - MiklPolikov   Цитата(megajohn @ Sep 27 2013, 16:53) Код...   Sep 27 2013, 13:35
|- - Палыч   Цитата(MiklPolikov @ Sep 27 2013, 17:35) ...   Sep 27 2013, 14:48
|- - MiklPolikov   Цитата(Палыч @ Sep 27 2013, 18:48) Речь в...   Sep 27 2013, 14:56
- - MrYuran   и обязательно в скобках do{}while(0)   Sep 27 2013, 13:23
|- - A. Fig Lee   Цитата(MrYuran @ Sep 27 2013, 09:23) и об...   Sep 28 2013, 02:14
|- - Raven   Цитата(MrYuran @ Sep 27 2013, 17:23) и об...   Sep 28 2013, 05:41
- - Allregia   А почему не делать так: Код__INLINE void VOLTAGE_R...   Sep 27 2013, 16:55
- - ViKo   А я иногда делаю так Код#define WDELAY_RESTART...   Sep 27 2013, 17:55
|- - Allregia   Цитата(aaarrr @ Sep 27 2013, 21:14) do {}...   Sep 27 2013, 19:21
||- - aaarrr   Цитата(Allregia @ Sep 27 2013, 23:21) Да,...   Sep 27 2013, 19:28
|- - ViKo   Цитата(aaarrr @ Sep 27 2013, 22:44) Т.е. ...   Sep 27 2013, 19:54
|- - aaarrr   Цитата(ViKo @ Sep 28 2013, 00:04) Не всег...   Sep 27 2013, 20:09
- - aaarrr   "Логичнее"? А что ведет себя совсем инач...   Sep 27 2013, 20:01
|- - ViKo   Цитата(aaarrr @ Sep 27 2013, 23:01) ...   Sep 27 2013, 20:09
- - aaarrr   Этот "набор выражений" и ведет себя как ...   Sep 27 2013, 20:19
- - ViKo   Цитата(aaarrr @ Sep 27 2013, 23:19) Этот ...   Sep 27 2013, 20:29
- - aaarrr   Цитата(ViKo @ Sep 28 2013, 00:29) Да ну? ...   Sep 27 2013, 20:50
- - ViKo   Цитата(aaarrr @ Sep 27 2013, 23:50) Понят...   Sep 28 2013, 07:47
- - igorle   Цитата(ViKo @ Sep 28 2013, 10:47) Хорошо,...   Sep 28 2013, 08:44
|- - ViKo   Цитата(igorle @ Sep 28 2013, 11:44) Будет...   Sep 28 2013, 08:58
|- - igorle   Цитата(ViKo @ Sep 28 2013, 11:58) Точка с...   Sep 28 2013, 09:22
|- - ViKo   Цитата(igorle @ Sep 28 2013, 12:08) Такой...   Sep 28 2013, 09:34
|- - Ruslan1   Цитата(igorle @ Sep 28 2013, 12:22) Rusla...   Sep 28 2013, 11:08
||- - Flood   Цитата(Ruslan1 @ Sep 28 2013, 15:08) Это ...   Sep 28 2013, 11:50
||- - igorle   Поддерживаю предыдущего оратора. И еще. "фун...   Sep 28 2013, 15:38
||- - ViKo   Цитата(igorle @ Sep 28 2013, 18:38) Напри...   Sep 29 2013, 19:01
||- - Flood   Цитата(ViKo @ Sep 29 2013, 23:01) Что так...   Sep 29 2013, 20:03
|- - A. Fig Lee   Цитата(igorle @ Sep 28 2013, 05:22) А выв...   Sep 29 2013, 20:22
|- - aaarrr   Цитата(A. Fig Lee @ Sep 30 2013, 00:22) П...   Sep 29 2013, 20:56
|- - ig_z   QUOTE (A. Fig Lee @ Sep 29 2013, 23:22) Н...   Sep 29 2013, 21:16
- - Ruslan1   Прочитал все написанное но так и не понял почему т...   Sep 28 2013, 09:03


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 02:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.01455 секунд с 7
ELECTRONIX ©2004-2016