Цитата(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 но использовал фирменный мицубишевский компилятор и линкер и таких багов точно бы непропустил.