|
1 / 1 / 0
Регистрация: 28.01.2010
Сообщений: 537
|
||||||
Вопросы о С.18.07.2011, 01:49. Показов 166093. Ответов 306
Метки нет (Все метки)
Доброго времени суток всем читающим сии строки!
В который раз сажусь писать прогу на Си, и вспоминаю про АССЕМБЛЕР... Есть некий код...
Внимание Вопрос. Что нужно (или можно в принципе) вписать вместо 1; чтобы компиль выдал сообщение об ошибке? Или поставте меня на правильные рельсы. Как его можно переписать? Да так, чтобы хоть ругался когда это нужно и как мне это нужно. А то что-то я не могу понять, как это ...
0
|
||||||
| 18.07.2011, 01:49 | |
|
Ответы с готовыми решениями:
306
БД: Контрольные вопросы по дисциплинам, темам и разделам: дисциплина; преподаватели; набор билетов; билет; вопросы к билетам; вопросы; темы вопросов Когда вопросы кончаются, сделать кнопку неактивной и вывести сообщение о том, что вопросы кончились вопросы про вопросы |
|
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
|
||||||||||||||||
| 20.07.2014, 12:54 | ||||||||||||||||
|
возник вопрос. надо очищать массив структур.
Структура:
parser_GSV(NMEA_sat_GLONASS); Но массив не обнуляется. Что делаю не так? Лепить цикл, в котором обнуляется каждый элемент крайне неохота - медленно.
0
|
||||||||||||||||
|
0 / 0 / 0
Регистрация: 13.07.2012
Сообщений: 566
|
|
| 20.07.2014, 12:58 | |
|
Вы передаете в качестве параметра указатель. Из него нельзя получить реальный размер структуры через sizeof(). Используйте sizeof(SAT_IN_GSV_STRUCT)
Если надо обнулить одним махом весь массив структур, то либо берите размер самого массива, либо размер структуры умножайте на кол-во элементов в массиве. И еще: выграша по сравнению с обнулением в цикле не будет. memset даст только более красивую запись, но не более того. Внутри нее будет тот же самый цикл.
0
|
|
|
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
|
|
| 20.07.2014, 13:02 | |
|
хм. тогда придется делать так:
memset(addr_pointer, 0, sizeof(SAT_IN_GSV_STRUCT)*16); Но необходимость указывать размерность массива немного не нравится.
0
|
|
|
0 / 0 / 0
Регистрация: 13.07.2012
Сообщений: 566
|
|
| 20.07.2014, 13:05 | |
|
А что мешает обьявить дефайн или енум для размера массива, а уже его использовать и при обьявлении массива и далее в коде
0
|
|
|
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
|
|
| 20.07.2014, 13:07 | |
|
да, с дефайнами всё работает. Пусть пока так, потом доработаем.
0
|
|
|
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
|
|
| 20.07.2014, 13:22 | |
|
хм, а отчего тогда memset верно работает в случае:
char str[] = "1234567890"; memset(str,0,sizeof(str)); ? из-за того что явно передано имя массива, не через указатель, который ссылается только на начало массива?
0
|
|
|
0 / 0 / 0
Регистрация: 13.07.2012
Сообщений: 566
|
|
| 20.07.2014, 13:24 | |
|
да. сайзоф из указателя даст лишь размер самого указателя, но не того объекта, на который он ссылается.
0
|
|
|
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
|
|
| 20.07.2014, 13:27 | |
|
оке. Спасибо за разъяснения.
0
|
|
|
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
|
|||||||||||
| 20.07.2014, 15:45 | |||||||||||
|
Хм, а такая ситуация. Есть структура GSV_STRUCT , со вложенным массивом структур SAT_IN_GSV_STRUCT
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 13.07.2012
Сообщений: 566
|
||||||
| 20.07.2014, 15:55 | ||||||
|
Если исправить ошибку в названии указателя, то вполне.
Если я правильно понял Вашу мысль, то должно быть так:
0
|
||||||
|
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
|
|
| 20.07.2014, 16:02 | |
|
да, это форумная опечатка, втупую скопировал из раннего сообщения.
0
|
|
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
|
|
| 20.07.2014, 17:31 | |
|
memset(addr_pointer->Sat_Info, 0, sizeof(addr_pointer->Sat_Info));
0
|
|
|
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
|
|
| 21.07.2014, 10:22 | |
|
не работает так... как сказали выше - нельзя передавать в sizeof указатель на массив, т.к. это всего-лишь адрес начала массива, и не более того.
0
|
|
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
|
|||||||
| 21.07.2014, 14:41 | |||||||
0
|
|||||||
|
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
|
|
| 21.07.2014, 15:23 | |
|
обязательно проверю, отпишусь. Странно, но с указателем не работало.
0
|
|
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
|
|
| 21.07.2014, 16:17 | |
|
с просто указателем как таковым и не будет работать. а с массивом - будет. gsv_pointer->Sat_Info - это массив, компилятор знает его размерность(!!!), хоть его и можно использовать как указатель на 1й элемент. чтобы проще понять/убедиться - вспомните массивы двойной размерности. массив байтов [8][8] займет непрерывно в памяти 64 байта, но компилятор в уме держит его размеры и может посчитать смещение по 2м индексам. передав куда-нить лишь указатель на этот массив - размерности потеряются.
0
|
|
|
1 / 1 / 0
Регистрация: 28.01.2010
Сообщений: 537
|
||||||
| 17.04.2015, 14:34 | ||||||
|
Доброго всем времени суток!
Появилась надобность в сохранении настроек с проверкой CRC. Собственно вопрос: Кто и как рассчитывает CRC на этапе компиляции программы? В моем случае нужно знать evSets_som_CRC.
Подправил в одном файле настройки в первом проекте. Пересобрал, запустил второй. Он подправил второй файл в первом проекте. Компилируем первый проект. И CRC в полном порядке. Может быть есть метод по-проще?
0
|
||||||
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,864
|
|
| 17.04.2015, 15:23 | |
|
Конкретно CRC не делал, но вообще вроде это стандартная задача кодогенерации. Типовое решение - выносим данные в отдельный файл своего формата и при сборке проекта генерим по нему C-файл, который и компилируем.
Для Visual Studyo (или Atmel Studyo 6 соответственно) это делается или через Custom Build Rule для своего типа файлов, или через Pre-buyld step. Для проектов на мейкфайлах всё по сути аналогично. Конкретно для вашего случая можно сделать по ленивому: pre-buyld step в проекте для мк, который соберёт (через msbuyld, полагаю) проект для компа и запустит его. Недостаток - вырастет время сборки проекта.
0
|
|
|
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 97
|
|
| 18.04.2015, 13:26 | |
|
gcc 4.4+ сборки поддерживают C++11 и constexpr-функции(вычисляемые на этапе компиляции). С помощью них будет не проблема сделать, однако я не проверял скомпилится ли это(и будет ли работать) в avr-gcc.
PS:Но и да, это с++
0
|
|
|
0 / 0 / 0
Регистрация: 03.06.2016
Сообщений: 39
|
||||||||||||||||
| 05.02.2017, 13:34 | ||||||||||||||||
|
Приветствую!
Есть всеми известные директивы #ifndef, #defyme и #endif, которые служат для предотвращения многократного включения хедера в проекте:
Думаю, вопрос совсем лёгкий, поэтому загнал его в "детские", хотя я что-то не догоняю...
0
|
||||||||||||||||
| 05.02.2017, 13:34 | |
|
Наука не отвечает на вопросы "почему". Наука отвечает на вопросы "как, сколько" Вопросы Вопросы по TP Вопросы по C++ Вопросы по Си Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|