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

razrab83

Участник
  • Постов

    354
  • Зарегистрирован

  • Посещение

  • Победитель дней

    3

razrab83 стал победителем дня 30 января

razrab83 имел наиболее популярный контент!

Репутация

15 Хороший

Информация о razrab83

  • Звание
    Местный
    Местный

Посетители профиля

1 844 просмотра профиля
  1. он будет по %f (или по %k) принимать float
  2. Нет. Я же говорю Придется пока смериться с double, а в дальнейшем возможно писать свой sprintf или использовать сторонний. Их уже навелосипедили не мало.
  3. с -Wformat предупреждения в gcc нет. Вы сами попробуйте.
  4. включены, оба сразу. предупреждений нет.
  5. ни чего не понял..... при чем тут суффикс f? Суфикс f в строке "float pi = ..." абсолютно ни как не влияет и не должен влиять на строку со sprintf(). все правильно. я записал "3.14" - считай что (double)(3.14). И что? Далее... я записал float pi = (double)(3.14); - в данной строке произошло неявное преобразование из double во float. Далее pi везде есть float. После, как инициализировалась pi - не важно. пусть будет так float pi = reinterpret_cast<float>(getMyFloat()); float pi = 3.14; float pi = (float)atof("3.14"); float pi = 3.14f; float pi = sinf(1); Выбери любой инит по душе. При чем тут вообще неявное преобразование в строке "float pi = 3.14;"? Мне на эту строку компилятор не дает ворнинг. да и если бы давал - да и черт с ним. Меня интересует ворнинг на sprintf. От способа инициализации pi результат sprintf не зависит. Ворнинг на sprintf в 9.4 будет, а в 8.5 и в gcc не будет. смотрел. там в 100500 окошках куча галочек. отличий не нашел. НО.... скомпилировал в 9,4 и в 8,5 один и тот же файл и сравнил опции компилятора - опции одинаковые iccarm.exe file.cpp -D USE_HAL_DRIVER -D STM32F429xx -D HSE_VALUE=((uint32_t)16000000) -D ewarm --preprocess=s <path>\ewarm-cm3\Debug\List -o <path>\ewarm-cm3\Debug\Obj --no_cse --no_unroll --no_inline --no_code_motion --no_tbaa --no_clustering --no_scheduling --debug --endian=little --cpu=Cortex-M4 -e --fpu=VFPv4_sp --dlib_config <path>\arm\inc\c\DLib_Config_Normal.h -On --c++ --no_exceptions но в 9.4 есть ворнинг на sprintf, а в 8.5 нет. Может в IAR 9-ке добавили этот ворнинг? В gcc версии arm-none-eabi-g++ (GNU Arm Embedded Toolchain 10.3-2021.08) 10.3.1 20210621 (rel ease) тоже нет ворнинга.
  6. в IAR - это лотерея. Ну не научился он это делать. Бывает, иногда сделает переход и даже попадет куда нужно. Но за частую не переходит. У вас какой-то месадж выдал. У меня молча закрывается контекстное меню и я остаюсь на том же месте, без каких либо сообщений. 2024 год на дворе, а IAR какие-то базовые операции навигации не умеет. Используйте внешний редактор внешнюю IDE: Eclipse, VS Code, .... для редактирования. Для отладки - IAR.
  7. а кто сказал что у меня нет такой привычки? написал для ПРИМЕРА. Изначально был такой пример float pi; sprintf(str, "%f", pi); Но подумал: щя найдется учитель, который будет учить инициализировать переменные перед использованием. Или спросит "а что такое str?". Немного доработал пример... но всё равно "занавеска" кому-то не угодила )). можно ещё и про snprintf(str, 100, ...) вспомнить для str[100]. По делу, вопрос остался: почему в IAR 8,5 нет предупреждения, а в 9.4 есть в одном проекте есть предупреждение, в другом нет? Почему в iccarm есть предупреждение, а в gcc нет?
  8. //*.cpp float pi = 3.14; char str[100]; sprintf(str, "%f", pi); На sprintf() получаю предупреждение Warning[Pa205]: implicit conversion from float to double До этого работал в IAR 8.5. всегда в %f подсовывал float, ни каких предупреждений. В кубеИде с gcc тоже нет такого предупреждения. В IAR 9.4 - это мой первый проект и вот такое получил. ну во первых, не хочу этот ворнинг, его конечно можно заглушить декертивами или настройками, или явным приведением типа к double. Но что-то не очень нравиться работать с double, т.к. МК имеет FPU single precision.
  9. поставить галку Tools->Options...->Editor->File Encoding->Auto-detect Из вопроса я понял, что проблема в том, что файл уже написан с русскими буквами, но вместо них отображается что-то другое.Закрываем файл , ставим Auto-detect, открываем файл. Другая проблема, что иар не то что не может отобразить русские, но он не может редактировать русские буквы, вместо них "????". для IAR 8.5: По умолчанию Tools->Options...->Editor->File Encoding->Default character encoding: System при этом снята галка Tools->Options...->Editor->File Encoding->Auto-detect создаю новый фаил в иаре - вместо русских вопросики. удаляю или закрываю этот файл. Меняю кодировку на Russian Tools->Options...->Editor->File Encoding->Default character encoding: Russian (акказываицо существует кодировка и/или набор символов Russian) создаю новый фаил в иаре - русские буквы как положено печатаются. Открываю созданный файл в notepad - русские буквы нормально, кодировка автоматом определилась как ANSI. Можно и в UTF-8, и в 1251, но включить авто-детект и далее как сказал Евгений 1 Это работает, если галка Tools->Options...->Editor->File Encoding->Auto-detect установлена. Даже UTF-8 иар сможет нормально открыть и показать в этой кодировке.
  10. Локализовал проблему. Память под хип выделена, но во внешней SDRAM, которая инитится в main. Всем спасибо.
  11. уважаемые плюсоводы, подскажите... файл *.cpp, код такой int *array[] = { new int(1), 0 }; объявлен и определён массив указателей вне тела функции. с компилятором arm-none-eabi-g++ -mcpu=cortex-m4 -std=gnu++17 работает. с IAR ANSI C/C++ Compiler V9.40.1.364/W64 for ARM (--cpu=Cortex-M4, --c++, с++17) зависает до майна на операторе new. На одном и том же МК.
  12. спасибо. помогло. Да, кстати... а почему "брейки" не исправили? Или есть такое слово у Ожигова?
  13. Не помогло. Помогло во вкладке поиска сделать "Remove all matches". Но мне не нужны эти стрелки в этом месте. Они перекрывают брейки. Пусть будут матчи в серче совпадения в окне поиска, но пусть они будут без стрелок в редакторе. Есть возможность настроить Eclipse так, чтобы результат поиска не выводил эти стрелки в редактор?
  14. Что за желтые стрелочки в редакторе? Как их убрать/скрыть?
  15. а пытались принять на 1276 от 68? в обратную сторону есть передача?
×
×
  • Создать...