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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> short long=24бит Как?
jcxz
сообщение Mar 1 2017, 15:35
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(ArtemKAD @ Mar 1 2017, 17:31) *
На "__packed struct"

Вам уже ответили. Учите язык.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 1 2017, 16:12
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(scifi @ Mar 1 2017, 17:22) *
В режиме C++ слово struct можно не писать.

Как и в Си, если захотеть.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Mar 1 2017, 16:59
Сообщение #18


Профессионал
*****

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



В общем мыши плакали, кололись, но....

Пока что у меня получилось примерно такое решение:

Код
typedef struct
{
unsigned char m[3];
}u24;

typedef struct
{
unsigned long code     :12;
unsigned long galey     :12;
} p24;

/// использование

struct
{
    u24 a;
    u24 b;
    u24 c;
    u24 d;
} test_24={{0x12,0x34,0x56},{0x78,0x9A,0xBC},{0xDE,0xF0,5},{7,8,9}};

unsigned int g,c;

c=(*(p24 *)&test_24.a).code;    // c=0x0412
g=(*(p24 *)&test_24.b).galey;    // g=0x0BC9


Или еще проще:
Код
typedef struct
{
unsigned long code     :12;
unsigned long galey     :12;
} p24;

/// использование

struct
{
    unsigned char a[3];
    unsigned char b[3];
    unsigned char c[3];
    unsigned char d[3];
} test_24={{0x12,0x34,0x56},{0x78,0x9A,0xBC},{0xDE,0xF0,5},{7,8,9}};

unsigned int g,c;

c=(*(p24 *)&test_24.a).code;    // c=0x0412
g=(*(p24 *)&test_24.b).galey;    // g=0x0BC9


Кривовато, но уже что-то...
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 9th August 2025 - 12:43
Рейтинг@Mail.ru


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