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

 
 
> C++ и массивы констант., А в чистом C работало ...
Terminator
сообщение Dec 9 2009, 07:49
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 209
Регистрация: 7-12-04
Из: Томск
Пользователь №: 1 382



Есть следующий код:
Код
typedef union {
         uint32_t p;
         float f;
} tUnion;

typedef struct {
         uint8_t type;
         uint8_t info[4];
         tUnion u;
} tItem;

const tItem i[] = {
         {2, {1,2,4,2}, .u.f=1.5},
         {1, {2,2,4,2}, .u.p=10},
         {2, {3,2,4,2}, .u.f=2.3}
};


В чистом C замечательно компилируется и работает. А вот как написать подобное в C++?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Methane
сообщение Dec 9 2009, 08:01
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(Terminator @ Dec 9 2009, 09:49) *
Есть следующий код:

В плюсах нельзя по имени инициализировать. Так что через конструктор итд. sad.gif
Причина редактирования: Нарушение п.3.4 Правил форума.
Go to the top of the page
 
+Quote Post
Terminator
сообщение Dec 9 2009, 08:07
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 209
Регистрация: 7-12-04
Из: Томск
Пользователь №: 1 382



Цитата(Methane @ Dec 9 2009, 14:01) *
В плюсах нельзя по имени инициализировать. Так что через конструктор итд. sad.gif

Ну это вообще не вариант, эта табличка пару кило весит, столько памяти на ветер...
Go to the top of the page
 
+Quote Post
Dima_G
сообщение Dec 9 2009, 08:54
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699



Цитата(Terminator @ Dec 9 2009, 12:07) *
Ну это вообще не вариант, эта табличка пару кило весит, столько памяти на ветер...

Сколько и какой памяти на ветер? rolleyes.gif
Go to the top of the page
 
+Quote Post
jorikdima
сообщение Dec 9 2009, 09:00
Сообщение #5


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



Цитата(Dima_G @ Dec 9 2009, 11:54) *
Сколько и какой памяти на ветер? rolleyes.gif

предполагаю РАМ ибо сущность tItem i[] = уже не сможет быть константой.
Go to the top of the page
 
+Quote Post
Dima_G
сообщение Dec 9 2009, 09:15
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699



Цитата(jorikdima @ Dec 9 2009, 13:00) *
предполагаю РАМ ибо сущность tItem i[] = уже не сможет быть константой.


Те стоит задача запихнуть этот массив в ROM (например - во флешь)?

Цитата(jorikdima @ Dec 9 2009, 13:00) *
предполагаю РАМ ибо сущность tItem i[] = уже не сможет быть константой.


Кстати, почему?
Этот код собирается прекрасно

Код
typedef struct sss
{
  BYTE a;
  BYTE b;
        
  sss(BYTE bA_, BYTE bB_):a(bA_),b(bB_){}      
};

static const sss sSss_ = sss(1,2);
static const sss asSSS_[] = {sss(1,2),sss(3,4),sss(5,6)};
Go to the top of the page
 
+Quote Post
Methane
сообщение Dec 9 2009, 09:50
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(Dima_G @ Dec 9 2009, 11:15) *
sss(BYTE bA_, BYTE bB_):a(bA_),b(bB_){}

static const sss sSss_ = sss(1,2);
static const sss asSSS_[] = {sss(1,2),sss(3,4),sss(5,6)};[/code]

Никогда такого не видел. Хоть как называется? Это стандартная фича или расширение IAR?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Terminator   C++ и массивы констант.   Dec 9 2009, 07:49
|- - Methane   Цитата(Terminator @ Dec 9 2009, 10:07) Ну...   Dec 9 2009, 08:13
||- - VladimirYU   Кодstruct TItem { .......... }; const TItem Item ...   Dec 9 2009, 08:29
||- - Terminator   Цитата(VladimirYU @ Dec 9 2009, 14:29) Ко...   Dec 9 2009, 08:52
||- - Methane   Цитата(Terminator @ Dec 9 2009, 10:50) А ...   Dec 9 2009, 08:53
||- - Dima_G   Цитата(Methane @ Dec 9 2009, 12:50) Никог...   Dec 9 2009, 10:04
|||- - Methane   Цитата(Dima_G @ Dec 9 2009, 12:04) Вы про...   Dec 9 2009, 11:22
||- - demiurg_spb   Цитата(Methane @ Dec 9 2009, 12:50) Никог...   Dec 9 2009, 16:09
|- - Terminator   Цитата(Dima_G @ Dec 9 2009, 15:15) Те сто...   Dec 9 2009, 12:28
|- - Dima_G   Цитата(Terminator @ Dec 9 2009, 16:28) По...   Dec 9 2009, 12:41
- - Terminator   без .u.f оно приводит к типу первого элемента unio...   Dec 9 2009, 08:18
|- - Methane   Цитата(Terminator @ Dec 9 2009, 10:18) бе...   Dec 9 2009, 08:37
- - jorikdima   Создайте отдельный модуль и компилируйте его и тол...   Dec 9 2009, 08:49
- - LessNik   Вообще-то и первоначальный код прекрасно собрался....   Dec 9 2009, 09:51
- - Terminator   Кодunion tUnion { int p; float f; tUnion...   Dec 9 2009, 12:50
|- - Dima_G   Цитата(Terminator @ Dec 9 2009, 16:50) [c...   Dec 9 2009, 12:55
|- - Terminator   Цитата(Dima_G @ Dec 9 2009, 18:55) Ну нич...   Dec 9 2009, 13:14
|- - Dima_G   Цитата(Terminator @ Dec 9 2009, 17:14) Пр...   Dec 9 2009, 16:14
- - alekseykoj   Вот так попробуй. Кодtypedef unsigned char uint8_t...   Dec 17 2009, 07:00
- - HARMHARM   Цитата(alekseykoj @ Dec 17 2009, 09:00) К...   Dec 17 2009, 07:14


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

 


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


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