jcxz 243 16 января, 2019 Опубликовано 16 января, 2019 · Жалоба 34 минуты назад, haker_fox сказал: Вы же используете IAR, так почему бы не использовать static_assert? Правда придётся задействовать компилятор Си++, но он же переварит сишный код. assert_static() у меня в списке есть. А ASSERT_STATIC() - это совсем другой макрос. Посмотрите внимательнее. И компилятор тут не при чём, макросы - это препроцессор. Цитата Название макроса... мммм... мягко говоря опасное Слишком коррелирует с sizeof. Ну и что? В чём опасность? Потому и название такое, само намекает на схожесть назначения (имена должны быть по возможности самокомментируемыми). Цитата Класс! Спасибо! Я думаю, для LPC4337 не слишком долго адаптировать, MPU-то всё равно платформенно независим Достаточно поменять содержимое t[]. Больше ничего. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 16 января, 2019 Опубликовано 16 января, 2019 · Жалоба 4 minutes ago, jcxz said: static_assert() у меня в списке есть. А STATIC_ASSERT() - это совсем другой макрос. Посмотрите внимательнее. И компилятор тут не при чём, макросы - это препроцессор. Я имел в виду это. Вроде ваш STATIC_ASSERT то же самое делает. 7 minutes ago, jcxz said: Достаточно поменять содержимое t[]. Больше ничего. Ну да. Сейчас в процессе изучения MPU по книге Дж. Ю. Прихожу к выводу, что здоровенный проект, сделанный на MPU, с использованием динамической памяти, не так просто будет перетащить на MPU. Слишком много менять. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 16 января, 2019 Опубликовано 16 января, 2019 · Жалоба 8 минут назад, haker_fox сказал: Я имел в виду это. Вроде ваш STATIC_ASSERT то же самое делает. Вы меня совсем запутали.... Вы где в моих макросах STATIC_ASSERT и static_assert увидели??? Ещё раз: внимательно посмотрите список моих макросов. Нет там никаких STATIC_ASSERT и static_assert. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 16 января, 2019 Опубликовано 16 января, 2019 · Жалоба 1 hour ago, jcxz said: Нет там никаких STATIC_ASSERT и static_assert. Да я сам в ваших макросах запутался... поменял местами половинки имён. Просто для меня привычен другой порядок. Ладно. Я просто предложил использовать вот этот инструмент из Си++11. Он генерит ошибку на этапе компиляции с текстовым сообщением. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 16 января, 2019 Опубликовано 16 января, 2019 · Жалоба 8 минут назад, haker_fox сказал: Я просто предложил использовать вот этот инструмент из Си++11. Он генерит ошибку на этапе компиляции с текстовым сообщением. Я не использую си++11 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 190 16 января, 2019 Опубликовано 16 января, 2019 · Жалоба 32 минуты назад, haker_fox сказал: Я просто предложил использовать вот этот инструмент из Си++11. Он генерит ошибку на этапе компиляции с текстовым сообщением. Очень удобная штука. Жаль в обычном C ее нет. Ну в C99 хотя бы - я обычно в настройках сразу ставлю этот стандарт. Поэтому приходится исхитряться Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 0 16 января, 2019 Опубликовано 16 января, 2019 · Жалоба 4 hours ago, Arlleex said: Жаль в обычном C ее нет. странное утвеждение https://gcc.gnu.org/wiki/C11Status _Static_assert GCC 4.6 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 190 17 января, 2019 Опубликовано 17 января, 2019 · Жалоба 6 часов назад, sasamy сказал: странное утвеждение Это расширение компилятора, как я понимаю, а не утвержденная Стандартом финтиклюшка. Возможно, Вы меня не так поняли - я имел в виду C99... Я работаю в IAR (теперь), а там, как я понимаю, C11 нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 17 января, 2019 Опубликовано 17 января, 2019 · Жалоба 14 minutes ago, Arlleex said: а там, как я понимаю, C11 нет Есть))) И Си11 и Си++14) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 190 17 января, 2019 Опубликовано 17 января, 2019 · Жалоба О блин... Вот что значит скачать компилятор дома, а мануал читать на работе Ладно, приду домой - гляну... В мануале (EWSTM8), по крайней мере, не нашел ничего про _Static_assert... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 17 января, 2019 Опубликовано 17 января, 2019 · Жалоба 2 minutes ago, Arlleex said: В мануале (EWSTM8) У меня IAR 8.22.2 ARM. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 190 17 января, 2019 Опубликовано 17 января, 2019 · Жалоба Только что, haker_fox сказал: У меня IAR 8.22.2 ARM. А, так это все меняет... У меня 3.10 - на STM8, это, видимо, был последний (по крайней мере он самый свежий на сайте). Покопаюсь с мелким контроллером под этой средой, раскурю ее потихоньку пока, привыкну, а потом, может быть, и скачаю под ARM Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 17 января, 2019 Опубликовано 17 января, 2019 · Жалоба 20 минут назад, haker_fox сказал: У меня IAR 8.22.2 ARM. "Уж сколько раз твердили миру..." И зачем пользуетесь таким кривым инструментом? Баги не напрягают? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 190 17 января, 2019 Опубликовано 17 января, 2019 · Жалоба 20 часов назад, jcxz сказал: Я старался давать говорящие имена, но если что будет непонятно по макросам - спрашивайте. А можно пояснить назначение и места использования следующих макроопределений (с остальными - понятно): #define lenof(var) (sizeof(var) * ((CHAR_BIT + 7) / 8)) #define ptrsizeof(m) (void *)&(m), sizeof(m) Особенно интересует второе. Заранее благодарен Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 17 января, 2019 Опубликовано 17 января, 2019 · Жалоба 44 minutes ago, jcxz said: Баги не напрягают? Впервую очередь напрягают баги оболочки, которую я вынужден использовать для отладки (пишу в Slick Edit). Качество и правильность кодогенерации не оценивал. Но сейчас в проекте как раз ищу пару плавающих багов. Есть подозрение, что портится память. Может быть и компилятор виновать. Но, с другой стороны, хардфолты не вылетают. Но это ни о чём не говорит. А вы до сих пор 7.80.4 используете. Нашёл в вашем сообщении. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться