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

 
 
> 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
Ответов
alekseykoj
сообщение Dec 17 2009, 07:00
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 60
Регистрация: 8-11-05
Пользователь №: 10 602



Вот так попробуй.
Код
typedef unsigned char uint8_t;
typedef unsigned long uint32_t;

union tUnionDat {
         uint32_t p;
         float f;
         tUnionDat(float a)
         {
            f = a;
         }
         tUnionDat(uint32_t a)
         {
             p = a;
         }
};

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

const tItem Item[] = {
         {2, {1,2,4,2}, (float)1.5},
         {1, {2,2,4,2}, (uint32_t)10},
         {2, {3,2,4,2}, (float)2.3}
};
Go to the top of the page
 
+Quote Post
HARMHARM
сообщение Dec 17 2009, 07:14
Сообщение #3


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Цитата(alekseykoj @ Dec 17 2009, 09:00) *
Код
         {2, {1,2,4,2}, (float)1.5},
         {1, {2,2,4,2}, (uint32_t)10},

Можно 1.5f и 10u.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Terminator   C++ и массивы констант.   Dec 9 2009, 07:49
- - Methane   Цитата(Terminator @ Dec 9 2009, 09:49) Ес...   Dec 9 2009, 08:01
|- - Terminator   Цитата(Methane @ Dec 9 2009, 14:01) В плю...   Dec 9 2009, 08:07
|- - 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   Цитата(Terminator @ Dec 9 2009, 12:07) Ну...   Dec 9 2009, 08:54
|- - jorikdima   Цитата(Dima_G @ Dec 9 2009, 11:54) Скольк...   Dec 9 2009, 09:00
|- - Dima_G   Цитата(jorikdima @ Dec 9 2009, 13:00) пре...   Dec 9 2009, 09:15
|- - Methane   Цитата(Dima_G @ Dec 9 2009, 11:15) sss(BY...   Dec 9 2009, 09:50
||- - 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


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

 


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


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