|
C++ и массивы констант., А в чистом C работало ... |
|
|
|
Dec 9 2009, 07:49
|

Местный
  
Группа: Участник
Сообщений: 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++?
|
|
|
|
|
 |
Ответов
|
Dec 9 2009, 09:15
|
Местный
  
Группа: Свой
Сообщений: 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)};
|
|
|
|
|
Dec 9 2009, 09:50
|

Гуру
     
Группа: Свой
Сообщений: 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?
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|