|
368 / 224 / 53
Регистрация: 18.10.2017
Сообщений: 2,393
|
||||||
Не принимается #define07.10.2025, 20:43. Показов 2132. Ответов 29
Метки нет (Все метки)
Здравствуйте!
Я имею намерене написать небольшую программу для ARM, начал делать и попытался определить указатель на uint32_t:
а в чём причина? Если авно укзывать там, где надо, (uint32_t *), то это работает.
0
|
||||||
| 07.10.2025, 20:43 | |
|
Ответы с готовыми решениями:
29
Как реализовать директиву #define для создания шаблона отпределения #define ? std::cin, eof не всегда принимается как признак конца файла Шифрование и обфускация принимается за вирус? |
|
Злостный нарушитель
10643 / 5794 / 1279
Регистрация: 12.03.2015
Сообщений: 26,744
|
|
| 07.10.2025, 21:07 | |
|
0
|
|
|
368 / 224 / 53
Регистрация: 18.10.2017
Сообщений: 2,393
|
|
| 07.10.2025, 21:18 [ТС] | |
|
Verevkin, благодарю за проверку. Теперь буду искать, что Я делаю не так. Возможно, что-то не подключил.
0
|
|
|
Злостный нарушитель
10643 / 5794 / 1279
Регистрация: 12.03.2015
Сообщений: 26,744
|
||
| 07.10.2025, 21:20 | ||
![]() Это же бесплатно и в тыщу раз быстрее форума.
0
|
||
|
368 / 224 / 53
Регистрация: 18.10.2017
Сообщений: 2,393
|
|
| 07.10.2025, 22:41 [ТС] | |
|
Verevkin, что значит "не сделал"? Я же сказал, что пытался это скомпилировать и оно не проходит, пишет, что перед uint32_t
требуетса '(' или идентификатор. Я пытаюсь скомпилировать в рамках arm-none-eabi, пока не получается именно с этим файликом. Makefile есть, я уже явно подключил там C_INCLUDES /usr/lib/include/newlib но это не помогло.
0
|
|
|
Windows must die
|
|
| 08.10.2025, 00:30 | |
|
Убери этот тупой ifndef в начале файла: ты проверяешь один макрос, а определяешь другой - толку от этого?
Вообще не нужно такой чушью заниматься, т.к. есть #pragma once - пишешь это в начале заголовочного файла, и он не будет повторно включаться.Ну и дефайнить тип - тоже бред. Есть же typedef!!! // я уж молчу о том, что вообще бессмысленно определять такой тип, как "указатель". Зачем?
0
|
|
|
фрилансер
6467 / 5682 / 1131
Регистрация: 11.10.2019
Сообщений: 15,140
|
|
| 08.10.2025, 06:48 | |
|
peter_irich, алиас всяко лучше макроса. Кроме того, маскировать звёздочку под алиас тоже не стоит, больше проблем будет, чем пользы
0
|
|
|
368 / 224 / 53
Регистрация: 18.10.2017
Сообщений: 2,393
|
|
| 08.10.2025, 12:16 [ТС] | |
|
Благодарю за советы, ошибку в #ifndef в начале я вчера заметил и исправил.
#pragma вообще никогда в жизни не использовал и сейчас даже не знаю, что он делает. С typedef тоже пробовал и с ним тоже не работает. В определениях структур через typedef часто указывают и имя типа и имя указателя на него. алиасы использовал только в .bashrc, так что опять же не представляю, как это делается в данном случае.
0
|
|
|
Модератор
|
||||||
| 08.10.2025, 12:24 | ||||||
#pragma once хоть и поддерживается компиляторами, но вещь не стандартная для языка, можно наткнуться что не будет поддержки, так что использование на свой страх и риск.
typedef что в define писать uint32_t*, то есть без пробела
0
|
||||||
|
368 / 224 / 53
Регистрация: 18.10.2017
Сообщений: 2,393
|
|
| 08.10.2025, 13:36 [ТС] | |
|
alecss131, я пробовал #define и без пробела после uint_32_t. Сейчас вернусь к этоми и ещё раз проверю синтаксис.
0
|
|
|
Windows must die
|
||||||||||||
| 08.10.2025, 14:39 | ||||||||||||
|
Добавлено через 3 минуты peter_irich, а почему у меня все работает и не ругается?
0
|
||||||||||||
|
368 / 224 / 53
Регистрация: 18.10.2017
Сообщений: 2,393
|
|
| 08.10.2025, 15:29 [ТС] | |
|
А не может ли такого быть, что у меня по умолчанию не включена какая-то опция комнпилятора, связанная с препроцессором?
0
|
|
|
2675 / 1336 / 481
Регистрация: 08.11.2016
Сообщений: 3,695
|
|
| 08.10.2025, 15:59 | |
|
peter_irich, давайте сначала: приведите весь код который компилируете и дословно выхлоп компилятора.
0
|
|
|
фрилансер
6467 / 5682 / 1131
Регистрация: 11.10.2019
Сообщений: 15,140
|
||
| 08.10.2025, 17:12 | ||
![]() gcc вообще не показатель, там сплошные нестандартные расширения
1
|
||
|
368 / 224 / 53
Регистрация: 18.10.2017
Сообщений: 2,393
|
|
| 08.10.2025, 18:03 [ТС] | |
|
Я прикладываю два архива: work_gd.zip и work_gd-new.zip.
1-й без файла def_some.h, он компилируется без ошибок, в build/ появляются *.elf, *.bin и *.hex. 2-й с def_some.h, там в make.err полный вывод компилятора, в *.lst выдержки из этого файла. cmpplf407 - это скрипт, запускающий компиляцию.Makefile был получен из работающего. Наверное, я делаю какую-то элементарную ошибку.
0
|
|
|
2675 / 1336 / 481
Регистрация: 08.11.2016
Сообщений: 3,695
|
|
| 08.10.2025, 18:33 | |
|
peter_irich, уберите скобки в определении макроса, такой годится только для приведения типа, но не для объявления переменной
0
|
|
|
368 / 224 / 53
Регистрация: 18.10.2017
Сообщений: 2,393
|
|
| 08.10.2025, 20:32 [ТС] | |
|
Annemesski, так макросы бывают очень громоздкими, особеммо у тех, кому они нравятся. Вчера я смотрел макросы
системных файлах, там есть круглые скобки в правой части. И вообще круглыуе скобки в макросах - это обычное дело, но сейчас попробую. Но я пробовал и без пробела перед '*', не помогло.
0
|
|
|
Windows must die
|
||||||
| 08.10.2025, 20:43 | ||||||
|
peter_irich, ты вообще понимаешь, что все, что ты пишешь после
#define X будет вместо этого X вставляться? И если ты пишешь #define uint32_p (uint32_t *), то при казалось бы обычном объявлении переменной uint32_p ptr ты получишь конструкцию (uint32_t *) ptr, что означает совсем другое - рассмотрение переменной ptr как указателя! А т.к. она у тебя не определена ранее, то компилятор естественно будет ругаться!Этот случай как раз наглядно показывает, что не стоит в дефайнах вокруг всего, чего попало, скобки расставлять! Добавлено через 2 минуты Если тебе нужен макрос приведения чего-то к указателю (например, взять адрес переменной), то сделай как-нибудь так:
0
|
||||||
|
368 / 224 / 53
Регистрация: 18.10.2017
Сообщений: 2,393
|
||||||
| 08.10.2025, 21:37 [ТС] | ||||||
|
Eddy_Em, благодарю за пояснения, воообще я макросы не люблю и поэтому не слишком хорошо в них разбираюсь.
Однако мне удалось получить работающий вариант, причём работает как typedef, так и #define, как с пробелом перед '*', так и без него. Но потребовалось из main.c убрать
0
|
||||||
|
Windows must die
|
|||||||||||||||||
| 08.10.2025, 22:41 | |||||||||||||||||
|
Лучше пиши #pragma once в начале h-файлов, если не планируешь пользоваться нестандартными компиляторами.Добавлено через 4 минуты Глянул зачем-то в код! Ну страшно же! Отступы где? Неудобно читать ведь без отступов. Дальше: зачем memcpy для копирования четырех байт данных? Вот, например:
Кстати, подозреваю, что если глубже копнуть, то вышеописанная портянка на самом деле будет чем-то вроде REGISTER->FIELD |= FLAGS;.Добавлено через 2 минуты Вот, например, для STM32:
0
|
|||||||||||||||||
| 08.10.2025, 22:41 | |
|
Помогаю со студенческими работами здесь
20
Символ } принимается регулярным выражением как буква-цифра Почему не принимается мое решение по алгоритму Soundex? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|