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

 
 
> проблема аллокаций структур в RAM, M16c renesas i iar
proba
сообщение Apr 11 2006, 08:53
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 358
Регистрация: 29-05-05
Пользователь №: 5 526



обьясните пожалуйста разницу в аллокации структуры в RAM. есть структура в иар 3.10 для M16C renesas:
struct mystr {
char name[16];
} ;
struct mystr user;

если пищу данные в user.name , то хранится данные там только до следующеи подпрограммы, потом только 0-и будут.
в программе точно ничто не перепишет.
по мап-е видно что структура создается в области временных переменных.

если описать структуру:

typedef struct {
char name[16];
} mystr;
mystr user;

то данные будут сохранятся.
в обеих случае struct дефинирован в main.c программе сразу после .h фаилов t.e. не в функции.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ipc
сообщение Apr 12 2006, 13:56
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 553
Регистрация: 30-03-05
Из: Санкт Петербург
Пользователь №: 3 793



Цитата(proba @ Apr 11 2006, 12:53) *
обьясните пожалуйста разницу в аллокации структуры в RAM. есть структура в иар 3.10 для M16C renesas:
struct mystr {
char name[16];
} ;
struct mystr user;

если пищу данные в user.name , то хранится данные там только до следующеи подпрограммы, потом только 0-и будут.
в программе точно ничто не перепишет.
по мап-е видно что структура создается в области временных переменных.

если описать структуру:

typedef struct {
char name[16];
} mystr;
mystr user;

то данные будут сохранятся.
в обеих случае struct дефинирован в main.c программе сразу после .h фаилов t.e. не в функции.

С точки зрения Си приведенные примеры между собой ничем неотличаются.Только в последнем случае описывается новый структурный тип что позволяет использовать его в описании параметров функций и в конверсии типов.Посему напрашивается логичный вывод-это глюк линкера(или предусмотренная какими нибудь настройками или галочками доп возможность).
Я писал для М16 но использовал фирменный мицубишевский компилятор и линкер и таких багов точно бы непропустил.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 09:50
Рейтинг@Mail.ru


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