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

 
 
 
Reply to this topicStart new topic
> Pe028 expression must have a constant value, string, char, struct и компилятор
10199
сообщение May 4 2011, 05:49
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 10-11-09
Пользователь №: 53 534



заголовочный файл:
------------
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 - не помогает.

не понимаю, где ошибка.
Go to the top of the page
 
+Quote Post
XVR
сообщение May 4 2011, 07:54
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Попробуйте static const char* a="abc";
Go to the top of the page
 
+Quote Post
10199
сообщение May 4 2011, 09:45
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 10-11-09
Пользователь №: 53 534



попробовал, тоже самое.
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};

работает.

чем же ему константный указатель не нравится


Сообщение отредактировал 10199 - May 4 2011, 12:40
Go to the top of the page
 
+Quote Post

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

 


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


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