Вт окт 16, 2018 21:29:37
Вт окт 16, 2018 21:34:23
Если компилятор не соответствует стандарту и ведет себя не предсказуемо - втопку его.VladislavS писал(а):похоже вы не видели результаты работы по настоящему злобных оптимизирующих компиляторов.
Вт окт 16, 2018 21:52:42
По мне, так то, что Вы написали, считается дурным тоном.
Кровь из глаз пойдёт у читателя этого кода
Вт окт 16, 2018 22:05:07
Нет конечно. Ибо - леньa5021 писал(а):Возьметесь оспаривать?
Запросто. Написание любого плохочитаемого кода априори является дурным тоном. По крайней мере, для меня. Возможно, для Вас это нормаa5021 писал(а):Обоснуете?
Вт окт 16, 2018 22:35:43
Ср окт 17, 2018 07:11:39
пишите так, и люди будут плевать вам вслед.a5021 писал(а):Еще одна забавная штука попалась на глаза: код, который нарушает все правила, но тем не менее работает.
тем не менее, не работает: https://ideone.com/557ULM GCC 6.3a5021 писал(а):но тем не менее работает. Это GCC 5.4.1
Ср окт 17, 2018 09:34:16
if (reset() && (delay(100), 1) && init() && (delay(100), 1) && run_cmd(MOVE_FORWARD)) {
// do smth
}
if (! reset())
return;
delay(100);
if (! init())
return;
delay(100);
if (! run_cmd(MOVE_FORWARD))
return;
// do smth
Ср окт 17, 2018 11:33:13
код, эксплуатирующий багофичи отдельных версий компилятора - разве можно придумать что-то более ужасное?
Ср окт 17, 2018 11:36:56
мне хорошо: я никогда сам так не делаю (так, как показали вы и обсуждается последние пару страниц тут), и никому не советую так делать. и остаюсь при уверенности, что каждый, кто так делет - либо болен, либо возомнил о себе невесть что.a5021 писал(а):Плохо вам.
Ср окт 17, 2018 11:54:48
Проверил на STMке с GCC 5.4 и GCC 7. Работает нормально. Результат соответствует.ARV писал(а):тем не менее, не работает: https://ideone.com/557ULM GCC 6.3
писать компиляторо-зависимый код, т.е. код, эксплуатирующий багофичи отдельных версий компилятора - разве можно придумать что-то более ужасное?
Ср окт 17, 2018 12:38:00
Ср окт 17, 2018 13:33:27
Ср окт 17, 2018 14:44:37
Ср окт 17, 2018 14:53:20
что такое замыкательный способ использования, я не в курсе, но вложенные функции есть в расширениях GCC для Си.a5021 писал(а):Вложенных функций ведь нет в Си, насколько я в курсе, уж не говоря про "замыкательный" способ использования.
Ср окт 17, 2018 15:12:27
я не в курсе, но вложенные функции есть в расширениях GCC для Си.
Ср окт 17, 2018 15:25:30
упаси бог, оно мне надо?!a5021 писал(а):Почитайте про замыкания в си ++
имеется.a5021 писал(а):Имеется, что возразить мануалу?
Ср окт 17, 2018 16:02:20
1. я так никогда сам не делаю и другим не советую - см. ранее.
запутало одинаковое наименование вложенных функций и указателей. это меня лишний раз убедило, что так делается исключительно ради того, чтобы поставить на место зарвавшихся самоучек
Ср окт 17, 2018 17:08:46
GPIOA->CRL = GPIO_BSSR_BSx
GPIOA->CRH = GPIO_BSSR_BSx
GPIOA->CRL = GPIO_BSSR_BS1
#define GPIO_PIN_SET(PORT, PIN) // а тут должно быть условие типа if(PIN<8){тут что-то типа такого: GPIO##PORT->CRL= GPIO_BSSR_BS##PIN} else {тут что-то типа такого: GPIO##PORT->CRH= GPIO_BSSR_BS##PIN}
GPIO_PIN_SET(A, 9);
GPIOA->CRH= GPIO_BSSR_BS9;
Ср окт 17, 2018 17:16:36
Ср окт 17, 2018 17:28:57
#define ISX_GPIO_PIN_SET (PORT, PIN) #if PIN<8 GPIO##PORT->CRL = ISX_GPIO_BS##PIN #else GPIO##PORT->CRH = ISX_GPIO_BS##PIN