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

 
 
> Присвоение значения структуры
Student2
сообщение Aug 6 2009, 12:21
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 4-08-09
Из: Болгария / София
Пользователь №: 51 737



Если у нас структура:

typedef struct
{
uint8_t X;
uint8_t Y;
} point_t;

и две переменные

point_t var1 = {.X = 2, .Y = 3};
point_t var2 = {.X = 4, .Y = 5};

после выполнения

var1 = var2;

что будет в var1?

Я вижу что IAR поставил var1.X = 4 , var1.Y = 5
Я тоже увидел что если первая стуктура дефинирована в ЕЕПРОМ а вторая в RAM то будет произходить програмирование ЕЕПРОМ

Вопрос в том - можно ли гарантировать что компилер будеть заботится об копирование всех полей при присвоения значения между двумя одиноковые структуры (даже если они довольно тежелые)?

Извините за незнание, можеть быть ето просто указано в ANSI C стандарте...

Другой вопрос - что будет произходить при typecast, если две структуры не одного типа. Например:

typedef struct
{
uint8_t data[3];
} arr_t;


point_t var1 = {.X = 2, .Y = 3};
arr_t var2 = {1,2,3};

var1 = (point_t)var2; /* что будет в var1 ? */
Go to the top of the page
 
+Quote Post



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

 


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


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