-
Постов
3 000 -
Зарегистрирован
-
Посещение
-
Победитель дней
11
Весь контент dimka76
-
Нет не сам. И ваша программа будет состоять явно не из этой одной строки, а тут речь шла о потерях в быстродействии всей программы, относительно программы на Си. Если вам все равно, что ради текстовой компактности можно пожертвовать такими потерями в скорости - ваше дело, но не мой выбор... Вы похоже каждый о своем. @mantech пишет про Python, а @dxp про C++
-
Artery USART перестали работать
dimka76 ответил fpga_student тема в ARM
Тут тоже палка о двух концах. Запустили вы DMA и пошли выполнять другую работу. Передача еще не завершилась, а тут еще кто-то захотел отправить. Появляется необходимость блокировок, флагов, ожиданий. В одном месте добавляете изящества, в другом теряете это изящество. -
Исчерпывающий ответ Си это тоже позволяет.
-
А в чем вы лично видите преимущество С++ ?
-
Одной из парадигм С++ является процедурное программирование. Но действительно, зачем С++, если достаточно Си ? Вот, что мне лично в С++ не нравится, так это приведение типов. Сейчас начнется Надо как-то вовремя остановиться.
-
case ...: и есть метка. А по стандарту за метками могут следовать только операторы, а объявления не считаются операторами в Cи.
-
Еще раз прошу заметить, что GCC в Си так говорит. В режиме СРР отмалчивается. Я просто скобочки использую везде и в любом режиме.
-
у dsPIC33 есть серии с 5 вольт питанием. Серия EV например.
-
А зачем ее объявлять без инициализации ? Все равно рано или поздно эта переменная должна быть инициализирована. И вы в своем примере следующей же строкой ее инициализируете. Ну, разве только чтобы передать указатель на нее в функцию, где ей присвоится значение. Ну, ладно. Вот такой пример case SETIDLETIMEOUT_CMD: //{ t_StdAnswer* p_StdAnswer; p_StdAnswer = (t_StdAnswer*)answ_buf; SetIdleTimeoutCmdHandler((t_SetIdleTimeoutCmd*)p_hdr, p_StdAnswer); uint32_t axis_cnt; axis_cnt = gsettings.get_common().AxisCount; send((uint8_t*)p_StdAnswer, (axis_cnt * sizeof(t_SetIdleTimeoutCmd)), addr, port); //} break; В MSVC и GCC в режиме СРР проходит без ошибок. А GCC в режиме Си выдает ошибку следующего содержания
-
Да, были писарями. Целую книгу написали. И что вы эту портянку второй раз приводите ? К тому же без должного оформления.
-
Значит MSVC и GCC что-то делают не так. А может быть вы не поняли о чем я ? switch(...) { case ... : { intt32_t a = 0; ..... } } Вот без фигурных скобок в case будет ошибка следующего содержания (для GCC)
-
Это не странная конструкция, а вполне нормальная. Например, для ограничения области видимости переменной. Или в случае объявления переменной внутри case, без этих скобочек вообще не обойтись.
-
Берете базовый документ Device Family Data Sheet. В начале каждого раздела этого документа есть отсылка к документу, детально описывающему этот модуль. Номер документа и его название. Этот текст даже в рамочку обводится.
-
У меня тоже один раз было такое. Когда в теме появились ответы, я стал ее видеть.
-
Это местоположение экспоненты в битовом пространстве числа в формате с плавающей точкой.
-
И снова CUBE IDE
dimka76 ответил Vlad_G тема в Cредства разработки для МК
Вкладку результатов поиска закрыть. -
А в чем вопрос тогда, если все работает ? Вся проблема в том, что нет желания изучать документацию на микроконтроллер и документацию на HAL. Да и посмотреть, что происходит в функции (или макросе) __HAL_AFIO_REMAP_SWJ_NOJTAG(); при наличии отладчика, да и просто по коду, не должно составить труда.
-
Может вам на Cortex-M4F перейти ? Они и дешевле гораздо и доступнее (по крайней мере в России).
-
-
Радиомонтажник-регулировщик (г. Троицк)
dimka76 ответил OOO ISTOK тема в Предлагаю работу
Это который в Москве или который в Челябинской области ? -
Скорее всего оптимизатор что-то соптимизировал. Не может такое преобразование мгновенно выполняться.
-
А если это покупное устройство ?
-
А компилятор до этого додумается ? Или в рукопашную ?
-
А диапазон, передаваемых значений умноженный на 10, уложится в int ? А при умножении передаваемого значения на 10 переполнения не возникнет ?