10199 0 4 мая, 2011 Опубликовано 4 мая, 2011 · Жалоба заголовочный файл: ------------ typedef char * string; extern string zzz[5]; typedef struct abc { string * arr; int k; }_abc; extern _abc bca; ------------ инициализируем: static string zzz[5] = {"abc ","bbqqeqwc ","cbcggfgdgd ","dfffbc ","ebc "}; extern _abc bca = { &zzz[0],5}; ------------ так все работает. но если сделать чтото вроде string a; //.h string a = "abc";//init static string zzz[5] = {a,a,a,a,a}; то получаем ошибку компиляции. пробовал и extern string a, и const string a, и static string a - не помогает. не понимаю, где ошибка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 4 мая, 2011 Опубликовано 4 мая, 2011 · Жалоба Попробуйте static const char* a="abc"; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
10199 0 4 мая, 2011 Опубликовано 4 мая, 2011 (изменено) · Жалоба попробовал, тоже самое. iar 6.10 for arm, на всякий случай. upd. вот тут обсуждается похожая проблема. и действительно, если заменить string a; //.h string a = "abc";//init на static const char a[5]; static const char a[5] = "aa"; то инициализация static string zzz[5] = {a,a,a,a,a}; работает. чем же ему константный указатель не нравится Изменено 4 мая, 2011 пользователем 10199 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться