реклама на сайте
подробности

 
 
> Указатель на структуру, правильно-ли?
otrog
сообщение Jul 7 2006, 11:52
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589



Здравствуйте.
Подскажите пожалуйста допустимо-ли так делать на C(CodeVision)?
Объявлена структура:
Код
struct TParameters
{
  unsigned int ADC_Value;
  unsigned int temperature[2];
  unsigned long suit;

  unsigned int CRC16;
};                  

struct TParameters Parameters;

В main-е есть вот что:
Код
// передача данных в комп
ptr = &Parameters;
Parameters.CRC16 = CRC16(ptr, sizeof(Parameters) - 2);
for (i=0;i<sizeof(Parameters);i++) { USART_Transmit(*ptr++); } // передать результаты измерений в УАРТ

Интересует применимость работы со структурами через указатели.

И еще CodeVision выдает warning"(358): suspicious pointer conversion" на строку "ptr = &Parameters;".
Что это может означать?
Спасибо.


--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
beer_warrior
сообщение Jul 7 2006, 15:11
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Цитата
Только не с AVR. Это семейство 8-битное и выравнивания данных в структурах не осуществляется.
Вот с ARM - другое дело.

Не знаю как где, а gcc запросто - накалывался.
Есть и второй момент - приведенная структура явно описывает данные для обмена, и скорее всего с писюком, для которого это актуально.
Цитата
x = offsetof(__struct__, __field__);

Совершенно верно, только как это ручками написать? Когда-то, где-то подсмотрел, но уже забыл sad.gif


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- otrog   Указатель на структуру   Jul 7 2006, 11:52
- - _Bill   Цитата(otrog @ Jul 7 2006, 14:52) Здравст...   Jul 7 2006, 11:59
|- - otrog   Цитата(_Bill @ Jul 7 2006, 15:59) Нет, не...   Jul 7 2006, 12:04
- - beer_warrior   ЦитатаИ всеже при обращении к структуре через указ...   Jul 7 2006, 12:42
|- - IgorKossak   Цитата(beer_warrior @ Jul 7 2006, 15:42) ...   Jul 7 2006, 12:51
|- - unichorn   Цитата(beer_warrior @ Jul 7 2006, 16:42) ...   Jul 7 2006, 12:54
- - GetSmart   Я не очень понял, что надо beer_warrior, но может ...   Jul 7 2006, 13:08
- - GetSmart   Ничё не знаю. Я прямо так и пишу в ИАРе под АРМ. ...   Jul 7 2006, 15:14
- - beer_warrior   Именно то спасибо. А скобки... Это же весьма навор...   Jul 7 2006, 15:34
- - GetSmart   А вот и нет. Не внешние скобки. А сразу за внешним...   Jul 7 2006, 15:40
- - defunct   ЦитатаТока не пойму зачем там лишняя пара скобок? ...   Jul 9 2006, 22:24
- - otrog   Спасибо всем ответившим. Но сомнения остались: Цит...   Jul 11 2006, 06:31
|- - Сергей Борщ   Цитата(otrog @ Jul 11 2006, 09:31) Кстати...   Jul 11 2006, 08:57
- - unichorn   Неиспользовать для этих целей тип int и unsigned i...   Jul 11 2006, 07:04
- - vet   Прочитать хелп по #pragma pack и использовать любы...   Jul 11 2006, 07:07
- - beer_warrior   Можно прагмой, в gcc для этих целей есть атрибут. ...   Jul 11 2006, 07:25


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 18:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.01373 секунд с 7
ELECTRONIX ©2004-2016