Перейти к содержанию
    

Стили оформления программ на C/C++ и их применимость

Выделено из https://electronix.ru/forum/topic/176134-artery-usart-perestali-rabotat/page/3/

 

В 29.12.2023 в 14:34, mantech сказал:

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

Если уж хотите плотности, пишите if(*pbuffer1 != *pbuffer2) {return 0;}

 

А я соглашусь с предыдущим оратором...   Че на них смотреть, на скобки?  Важно видеть структуру, а скобки неизбежное зло, издержки синтаксиса. Вот питон на этот счет образец, никаких скобок, блоки кода разделяются indentation.

 А если пять-шесть вложений? В конце шесть скобок, каждая на новой строке.. Какую смысловую нагрузку они несут?

Приведеный пример я бы оформил так:

if(*pbuffer1 != *pbuffer2){
  return 0;}

   заранее согласен, что тема выеденного яйца не стОит, но все же...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это дурная привычка.
А представьте себе, что где нибудь в другом месте, с другим устройством сделать так же. Они друг друга заблокируют.
Нужно использовать прерывания, DMA


Эт вы не мне, ТСу расскажите, "While" - его (((-8Ж

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 hours ago, nanorobot said:

Какую смысловую нагрузку они несут?

В С++ скобки обозначают область видимости переменных.

 

10 hours ago, nanorobot said:

Приведеный пример я бы оформил так:

if(*pbuffer1 != *pbuffer2){
  return 0;}

А вы, вообще, читали что-нибудь по основам книгопечатания? Печатники ведь уже несколько сот лет назад выявили закономерности в расположении символов, которые позволяют человеку быстро и с минимальным напряжением читать и понимать прочитанное. Пример форматирования выше является примером того, как делать не_надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 hours ago, nanorobot said:
if(*pbuffer1 != *pbuffer2){
  return 0;}

А что мелочиться ? Сразу так.
 

if(*pbuffer1!=*pbuffer2)return 0;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, x893 сказал:

А что мелочиться ? Сразу так.

Ну эт ясно дело, что если один ретурн, без скобок, а если там вместо него макрос какой-нить, напишешь без скобок и попал по полной)))))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 минуты назад, mantech сказал:

Ну эт ясно дело, что если один ретурн, без скобок, а если там вместо него макрос какой-нить, напишешь без скобок и попал по полной)))))))

Видимо макросы надо писать грамотно. Не умеете - учитесь.  :unknw:

PS: Опять скобочная война.... какая уже по счёту?  :scratch_one-s_head:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Макросы зло, их вообще писать не надо.

Форматирование чужого кода (библиотек) зло, нечего в него вообще лезть. Как автор написал так и компилировать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, tonyk_av said:

В С++ скобки обозначают область видимости переменных.

 

А вы, вообще, читали что-нибудь по основам книгопечатания? Печатники ведь уже несколько сот лет назад выявили закономерности в расположении символов, которые позволяют человеку быстро и с минимальным напряжением читать и понимать прочитанное. Пример форматирования выше является примером того, как делать не_надо.

про область видимости я в курсе.  я имею в виду размазывание группы скобок на несколько строк, которое, на мой взгляд, отнюдь не способствует пониманию, а только отвлекает внимание, и крадет полезную площадь экрана.  Для улучшения восприятия структуры достаточно отступов, а скобки лишь дань синтаксису языка с.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 12/30/2023 at 12:52 AM, Obam said:

Эт вы не мне, ТСу расскажите, "While" - его (((-8Ж

Не это не ко мне, а к Artery. 

"While" - это из их Firmware_Library)

Но такто Artery не единственные, кто грешит "While". Ими вообще ВСЕ грешат, начиная с Ритчи)

 

On 12/30/2023 at 2:17 PM, nanorobot said:

про область видимости я в курсе.  я имею в виду размазывание группы скобок на несколько строк, которое, на мой взгляд, отнюдь не способствует пониманию, а только отвлекает внимание, и крадет полезную площадь экрана.  Для улучшения восприятия структуры достаточно отступов, а скобки лишь дань синтаксису языка с.

Абсолютно согласен. Такое ощущение что некоторые граждане пытаются нагнать обьем кода в страницах, забивая все пробелами, скобками, переносами и любой возможной не относящейся к делу хренью

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 12/30/2023 at 2:15 PM, VladislavS said:

Форматирование чужого кода (библиотек) зло, нечего в него вообще лезть. Как автор написал так и компилировать.

Поставил Advanced Find and Replace, видно из анализа больших исходников действительно могут возникнуть при правке проблемы.

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

 

Например вот такой кусок сломается:

//if ()

        {

           .....

        }

Уже видел в одном месте, странную конструкцию, где были открывающие и закрывающие скобки, а самого оператора (if или while или do) не было вообще.

Радость только в том что в такой ситуации код сломается с ошибкой.

Регулярка уже такая \)\s*\r\n\s*{\s*\r\n  на  ){\n

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 12/30/2023 at 5:41 PM, fpga_student said:

 странную конструкцию

Это не странная конструкция, а вполне нормальная.

Например, для ограничения области видимости переменной.

Или в случае объявления переменной внутри case, без этих скобочек вообще не обойтись.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 hours ago, fpga_student said:

Радость только в том что в такой ситуации код сломается с ошибкой.

Регулярка уже такая \)\s*\r\n\s*{\s*\r\n  на  ){\n

Это спорное утверждение. Опять же от остального кода зависит. Стандартом языка не запрещено.

Изменено пользователем haker_fox
Нецензурная лексика.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 hours ago, dimka76 said:

Это не странная конструкция, а вполне нормальная.

Например, для ограничения области видимости переменной.

несильно понятно где может возникнуть такая потребность. Тем более что код в основном плюсовой, те капсуляция в обьектах должна быть. 

 

11 hours ago, dimka76 said:

Или в случае объявления переменной внутри case, без этих скобочек вообще не обойтись.

 Это другое с case проблем не будет.

 

11 hours ago, x893 said:

Стандартом языка не запрещено.

От обезьяны с гранатой нет спасенья, в коде идиота можно и без rename-ов подорваться.

 

Вот кстати опять наткнулся.

Интересно бы понять в чем здесь сакральный смысл скобок.

Файл system_at32f403a_407.c


 

    case CRM_SCLK_PLL:
      pll_clock_source = CRM->cfg_bit.pllrcs;
      {
        /* get multiplication factor */
        pll_mult = CRM->cfg_bit.pllmult_l;
        pll_mult_h = CRM->cfg_bit.pllmult_h;
        /* process high bits */
        if((pll_mult_h != 0U) || (pll_mult == 15U)){
            pll_mult += ((16U * pll_mult_h) + 1U);
        }
        else{
            pll_mult += 2U;
        }

        if (pll_clock_source == 0x00){
          /* hick divided by 2 selected as pll clock entry */
          system_core_clock = (HICK_VALUE >> 1) * pll_mult;
        }
        else{
          /* hext selected as pll clock entry */
          if (CRM->cfg_bit.pllhextdiv != RESET){
            hext_prediv = CRM->misc3_bit.hextdiv;

            /* hext clock divided by 2 */
            system_core_clock = (HEXT_VALUE / (hext_prediv + 2)) * pll_mult;
          }
          else{
            system_core_clock = HEXT_VALUE * pll_mult;
          }
        }
      }
      break;

 

Изменено пользователем haker_fox
Код оформляется в тегах!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, dimka76 сказал:

Или в случае объявления переменной внутри case, без этих скобочек вообще не обойтись.

Странно... Я почему-то обхожусь. ЧЯДНТ?  :umnik2:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...