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

Лидеры

  1. _pv

    _pv

    Свой


    • Баллы

      1

    • Постов

      4 313


  2. Xenia

    Xenia

    Модератор FTP


    • Баллы

      1

    • Постов

      4 822


  3. jcxz

    jcxz

    Свой


    • Баллы

      1

    • Постов

      13 177


  4. Arlleex

    Arlleex

    Свой


    • Баллы

      1

    • Постов

      5 813


Популярный контент

Показан контент с высокой репутацией 09.12.2023 во всех областях

  1. Советую удалить файлы: *.dsw *.mbt *.mrt из вашего проекта. Самому проекту это не повредит. Особливо *.dsw бывает вредоносен, т.к запоминает расположение окон IDE.
    1 балл
  2. Я однажды в это же влип, писал на форумы билдероводов. В общем, все было бесполезно. Конец. Берите бэкап и идите от него. https://www.tek-tips.com/viewthread.cfm?qid=1661284 мб произойдет чудо.
    1 балл
  3. У верилога с разнообразием типов изначально было довольно бедно и перепутать местами clk и rst у модуля с парой десятков аргументов несколько проще. В том же С компилятор не даст поменять местами double и указатель на строку. С (в отличии от плюсов) вроде умеет в человеческую инициализацию структур Line((param_t){{75, a1}, .len = -15, .color = GREEN, win}); Отчасти да конечно, но в embedded с его ограничениями ресурсов обычно больше четырёх параметров через регистры всё равно не передаётся, (да и не в ембеддед, винды на x64 тоже только 4 аргумента через регистры передают). А те что передаются через регистры, внутри вызываемой функции скорее всего первым же делом будут засунуты на стэк, чтобы эти самые регистры освободить, например для вызова следующей функции. В результате такой повышенной эффективности кода получится абсолютно тоже самое - аргументы на стэке, только вместо запихивания на стэк сразу, аргументы дополнительно ещё будут разолжены по регистрам перед вызовом. а вот читаемость кода вызова функции с десятком однотипных аргументов, особенно магических констант, выглядит гораздо хуже, даже если при этом какое-нибудь одно копирование первого аргумента со стэка получилось сэкономить.
    1 балл
  4. Т.е. - одно полотенце из аргументов меняем на ещё бОльшее полотенце (из теперь уже заполнения членов структуры) и это полотенце вам почему-то нравится больше??? Не можете запомнить названия аргументов функции? Воспользуйтесь комментариями. Как уже заметили выше. Ну или переходите на Python - там можно именовать аргументы функции. PS: Во всякие громкие имена тыкать пальцем не надо - можно найти кучу противоположных, не менее авторитетных мнений. А самый главный авторитет это - практика. А она однозначно говорит, что: Передавать через структуры/классы то, что можно передать через регистры - это снижать эффективность кода. Тем более в embedded, с его ограничениями ресурсов.
    1 балл
  5. При чтении сообщений из этого треда меня не покидало ощущение дежавю. Сегодня я понял, почему - когда наткнулся на эту тему - Первый проект на Verilog. Прошу помощи
    1 балл
  6. Берем абстрактный пример: void Line(coord_t start, int len, int color, param_t *window); ... Line({10, 20}, 50, RED, &win); Line({75, a1}, -15, GREEN, &win); Line({a1, b1}, 77, BLUE, &win); И параметров немного, и понятно всё, и компактно. Тот же самый пример, но с одним параметром в виде упакованной структуры: param.coord.x = 10; param.ccord.y = 20; param.len = 50; raram.color = RED; param.window = &win; Line(&param); param.coord.x = 75; param.coord.y = a1; param.len = -15; param.color = GREEN; Line(&param); param,coord.x = a1; param.coodr.y = b1; param.len = 77; param,color = BLUE; Line(&param) Фуух, я конечно не кодописатель, поэтому заманался во втором случае буковки печатать, особенно со смартфона, ё. Надо во всем иметь разумный подход и гибкую соображаловку. Почему в то время этот, как ево, Страус... (я знаю, кто это такой!) топил за один параметр в виде указателя на структуру. Да потому, что в то время вычислительные ядра имели мало регистров, а все эти параметры передаются через регистры. И ясен пень, чем больше параметров, тем больше регистров задйствуются. Но в современном железе - не повод отказываться от 3-4-5 параметров, если так будет лучше. И повторюсь, во всем должен быть разумный подход! И мышление программиста (не кодописателя) должно быть гибким. Тот или иной подход применяется конкретно по обстановке. Так понятнее?
    1 балл
×
×
  • Создать...