Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Массив типизированных данных, не могу понять как его задать. 
:(
    Опции темы
PILOT
Дата 10.1.2005, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: нет
Всего: 54



Есть структура:
Код

enum WhatShow {none,current_number,summ_number,user_number,ident_number};

struct TStates
{
 char StateNum;//            8
 char LED_L_St:1;//          1
 char LED_L_Bl:1;//          2
 char LED_U_St:1;//          3
 char LED_U_Bl:1;//          4  
 char LED_OY_St:1;//         5
 char LED_OY_Bl:1;//         6
 char LED_O_St:1;//          7
 char LED_O_Bl:1;//          8  
 char LED_Y_St:1;//          9
 char LED_Y_Bl:1;//          10  
 char LED_C3_St:1;//         11
 char LED_C3_Bl:1;//         12  
 char LED_H_St:1;//          13
 char LED_H_Bl:1;//          14  
 char LED_3Y_St:1;//         15
 char LED_3Y_Bl:1;//         16  
 char LED_OC_St:1;//         17
 char LED_OC_Bl:1;//         18
 char B_OY_Active:1;//       19
 char B_OY_Down_St;//        8
 char B_OY_Up_St;//          8  
 char B_C3H_Active:1;//      1
 char B_C3H_Down_St;//       8
 char B_C3H_Up_St;//         8
 char Timer_Active:1;//      1
 char Timer_Time;//          8
 char Timer_Ovf_St;//        8
 WhatShow Display_What:4;//  4  
 char BlinkingDig:4;//       4
};


Это есть шаблон машины состояний некоего устройства. Каждое состояние обладает указанными признаками и переходя от одного состояния в другое устройство изменяет индикацию и свое поведение.
Теперь я хочу естественно задать все массив состояний:
Код

static TStates States[MAX_STATES_NUM] = {
//  8    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 8    1 8    8    1 8    8    8    4
   0x55,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0x55,1,0x43,0x53,1,0x23,0x50,0x60,none,
   0x56,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0x55,1,0x43,0x53,1,0x23,0x50,0x60,none//
   };

Но вот тут возникает несовпадение по размеру заданного шаблона и того что реально в памяти.
Я делаю что-то не так, а, возможно, нужно по-другому решать подобную задачу, но ума не приложу как...

СУВ.


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
PILOT
Дата 10.1.2005, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: нет
Всего: 54



разобрался smile спасибо.

СУВ.


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
Unknown_Error
Дата 10.1.2005, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 3.1.2005

Репутация: нет
Всего: нет



Цитата(PILOT @ 10.1.2005, 18:46)
WhatShow Display_What:4;

Например сюда ты пытаешься записать число 0x60 (InDec = 96), тут явно видно, что сюда оно не влезет!
И вообще я бы не стал описывать такую структуру битовых полей! Для этого компилер генерирует спец код, что затормаживает раюоту твое программы!

Вообще обычно все заводят переменну, скажем типа long и туда по смещениям заносят инфу!
PM MAIL ICQ   Вверх
PILOT
Дата 10.1.2005, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: нет
Всего: 54



Цитата
Вообще обычно все заводят переменну, скажем типа long и туда по смещениям заносят инфу!

т.е.?

СУВ.


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
sonic
Дата 11.1.2005, 00:13 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Код

const long RED = 0x000001;
const long GREEN = 0x000010;
const long BLUE = 0x000100;
long colorModel = RED | GREEN;


  Вверх
PILOT
Дата 11.1.2005, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: нет
Всего: 54



наверное имелось в виду:
Код

const long RED = 0x0000A2;
const long GREEN = 0x003400;
const long BLUE = 0xFF0000;
long colorModel = RED | GREEN | BLUE;

Но мне то нужно сократив размер памяти хранить биты (булевые значения)... и обращаться к ним именно как к битам...

СУВ.


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
Unknown_Error
Дата 11.1.2005, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 3.1.2005

Репутация: нет
Всего: нет



PILOT
Ну тип того! Только достаточно заевсти одни переменную типа лонг!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0823 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.