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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Как сделать структуру из битовых полей минимального размера?
inventor
сообщение Sep 30 2015, 15:54
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



Подскажите опции, как сделать подобную структуру 1 байт длины
при всех попытках получается 4 байта

CODE
/**
* Состояние во время работы - 1 байт
*/
typedef struct {
unsigned device_in_runtime : 1;
unsigned acquisition_running : 1;
unsigned gps_sync_ok : 1;
unsigned queue_overrun : 1;
unsigned rsvd0:4;
} RUNTIME_STATE;
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Sep 30 2015, 16:10
Сообщение #2


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(inventor @ Sep 30 2015, 18:54) *
Подскажите опции, как сделать подобную структуру 1 байт длины
при всех попытках получается 4 байта
...


выравнивание на байт делали? всякие там прагма паки???
Go to the top of the page
 
+Quote Post
SSerge
сообщение Sep 30 2015, 16:16
Сообщение #3


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

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



А какого размера unsigned int? Правильно, 4 байта.
Хотите 8 бит - используйте соответствующий тип, например uint8_t.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Sep 30 2015, 16:17
Сообщение #4


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



не досмотр с меня под вечер..

CODE


typedef struct {
bool device_in_runtime : 1;
bool acquisition_running : 1;
bool gps_sync_ok : 1;
bool queue_overrun : 1;
bool rsvd0:4;
} RUNTIME_STATE;



тип правильный укажите...

Сообщение отредактировал kolobok0 - Sep 30 2015, 16:44
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 30 2015, 16:20
Сообщение #5


Гуру
******

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



QUOTE (inventor @ Sep 30 2015, 18:54) *
при всех попытках получается 4 байта

Было-бы странно, если-бы после вашего ПРЯМОГО указания сделать структуру размером int, компилятор смог сделать что-то другое.


QUOTE (kolobok0 @ Sep 30 2015, 19:10) *
выравнивание на байт делали? всякие там прагма паки???

Дивная мысль sm.gif - приказать паковать одинокий int. Интересно во что и с чем?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
scifi
сообщение Sep 30 2015, 16:35
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(zltigo @ Sep 30 2015, 19:20) *
Было-бы странно, если-бы после вашего ПРЯМОГО указания сделать структуру размером int, компилятор смог сделать что-то другое.

Я немного разжую замечание коллеги.
А вы в курсе, что unsigned - это unsigned int? Вопрос номер два: а вы не пробовали написать unsigned char? Ну или uint8_t?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Sep 30 2015, 17:01
Сообщение #7


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Правильно колобок говорил: паки-паки... Никакие char в битовом поле ни на что не влияют. Задано поле 1 бит, таким и будет.

Ой! Посмотрел, как я пишу. Задаю везде uint8_t xxx : 1; laughing.gif
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Sep 30 2015, 17:16
Сообщение #8


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(ViKo @ Sep 30 2015, 20:01) *
Правильно колобок говорил: паки-паки.....


там ТС юзает не битовые поля. если начнёт юзать - то паки собственно и не нужны.
ну по крайней мере у меня так иар ся ведёт...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 30 2015, 18:02
Сообщение #9


Гуру
******

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



QUOTE (kolobok0 @ Sep 30 2015, 20:16) *
там ТС юзает не битовые поля. если начнёт юзать - то паки собственно и не нужны.

Что это написано? Не осилил sad.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
inventor
сообщение Sep 30 2015, 19:22
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



Цитата(kolobok0 @ Sep 30 2015, 19:17) *
не досмотр с меня под вечер..

CODE


typedef struct {
bool device_in_runtime : 1;
bool acquisition_running : 1;
bool gps_sync_ok : 1;
bool queue_overrun : 1;
bool rsvd0:4;
} RUNTIME_STATE;



тип правильный укажите...


ставил и pragma pack(1) и
__attrib__ ((packed))
попробую завтра поменять unsigned на u8
меня сбило с толку что в борланде размер этой структуры
получился 1 байт
хотя то же стояло unsigned

Go to the top of the page
 
+Quote Post
kolobok0
сообщение Sep 30 2015, 19:49
Сообщение #11


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(inventor @ Sep 30 2015, 22:22) *
ставил и ...


CODE


typedef struct {
bool device_in_runtime : 1;
bool acquisition_running : 1;
bool gps_sync_ok : 1;
bool queue_overrun : 1;
bool rsvd0:4;
} RUNTIME_STATE;



тупо скопируйте тот код что запостил я.
потом компильнитесь и посмотрите отличия от Вашего варианта...


Цитата(zltigo @ Sep 30 2015, 21:02) *
Что это написано? Не осилил sad.gif


конкретнее какие слова не понятны?

Сообщение отредактировал kolobok0 - Sep 30 2015, 19:50
Go to the top of the page
 
+Quote Post
den_po
сообщение Sep 30 2015, 21:17
Сообщение #12


Частый гость
**

Группа: Участник
Сообщений: 139
Регистрация: 9-11-12
Из: Санкт-Петербург
Пользователь №: 74 315



sizeof(bool) не обязан быть 1
Go to the top of the page
 
+Quote Post
inventor
сообщение Oct 1 2015, 06:14
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



Цитата(kolobok0 @ Sep 30 2015, 22:49) *
CODE


typedef struct {
bool device_in_runtime : 1;
bool acquisition_running : 1;
bool gps_sync_ok : 1;
bool queue_overrun : 1;
bool rsvd0:4;
} RUNTIME_STATE;



тупо скопируйте тот код что запостил я.
потом компильнитесь и посмотрите отличия от Вашего варианта...

конкретнее какие слова не понятны?



поменял unsigned на u8 - все стало правильно.
спасибо за подстказку.
единственное что непонятно, почему в борланде BCC32 все эти структуры
такого размера как мне надо!
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 1 2015, 06:31
Сообщение #14


Гуру
******

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



QUOTE (kolobok0 @ Sep 30 2015, 22:49) *
конкретнее какие слова не понятны?

К сожалению все sad.gif. Не могу даже ухватиться за какую-то тень мысли sad.gif


QUOTE (den_po @ Oct 1 2015, 00:17) *
sizeof(bool) не обязан быть 1

Именно так! Зависит от платформы и компилятроа.




QUOTE (inventor @ Oct 1 2015, 09:14) *
единственное что непонятно, почему в борланде BCC32 все эти структуры
такого размера как мне надо!

Потому, что Борланд sad.gif с его феерической традиционной кривизной и наплевательством на стандарты. Сваяли в свое время некий "Паскаль" в отсутствие стандарта, и решили повторить "успех" с Си. Я начинал в свое время BCPP 1.0 - ну очень потом, когда поумнел, ругался.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 1 2015, 06:37
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(zltigo @ Oct 1 2015, 09:31) *
Потому, что Борланд sad.gif с его феерической традиционной кривизной и наплевательством на стандарты. Сваяли в свое время некий "Паскаль" в отсутствие стандарта, и решили повторить "успех" с Си. Я начинал в свое время BCPP 1.0 - ну очень потом, когда поумнел, ругался.

Я бы так не спешил. Вот читаю в стандарте про битовые поля и до конца понять не могу. Там практически всё "implementation-defined":
Цитата
An implementation may allocate any addressable storage unit large enough to hold a bit-field.
If enough space remains, a bit-field that immediately follows another bit-field in a
structure shall be packed into adjacent bits of the same unit. If insufficient space remains,
whether a bit-field that does not fit is put into the next unit or overlaps adjacent units is
implementation-defined. The order of allocation of bit-fields within a unit (high-order to
low-order or low-order to high-order) is implementation-defined. The alignment of the
addressable storage unit is unspecified.

Короче, там почти ничего не определено стандартом. Битовые поля отданы на откуп компиляторописателям.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Oct 1 2015, 08:58
Сообщение #16


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Похоже, битовое поле должно встраиваться в тот тип переменной, который указан. Если написали uint8_t, то, значит, в него.
Bool не катит, он может все 32 бита (int) оккупировать.
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 1 2015, 09:21
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(ViKo @ Oct 1 2015, 11:58) *
Похоже, битовое поле должно встраиваться в тот тип переменной, который указан.

Нет, не похоже. Во всяком случае, в тексте стандарта я этого не увидел. Более того, стандарт допускает, что битовое поле может наложиться на соседнее. Так что это абсолютно непереносимая штука.
Но я не йурист, если что...
Go to the top of the page
 
+Quote Post
ViKo
сообщение Oct 1 2015, 09:30
Сообщение #18


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(scifi @ Oct 1 2015, 12:21) *
Более того, стандарт допускает, что битовое поле может наложиться на соседнее.

Забить не полностью байт - это понимаю. Расположиться в двух соседних байтах - возможно. Добавляю дурных dummy битов на этот случай, для выравнивания. Но наложиться...? Это уж вряд ли.
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 1 2015, 09:41
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Фигню я сказал. Очевидно, имеется в виду, что битовое поле может лежать в двух разных ячейках (скажем, пересекать границу слова), а может размещаться в новой ячейке. На усмотрение компиляторописателя.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 1 2015, 10:01
Сообщение #20


Гуру
******

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



QUOTE (scifi @ Oct 1 2015, 09:37) *
Короче, там почти ничего не определено стандартом. Битовые поля отданы на откуп компиляторописателям.

Но не замена ЯВНО указанного размера "юнита" int на восемь бит, как это делает по уверждению автора Борланд.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 1 2015, 10:29
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(zltigo @ Oct 1 2015, 13:01) *
Но не замена ЯВНО указанного размера "юнита" int на восемь бит, как это делает по уверждению автора Борланд.

Пруф?
Я утверждаю обратное.
Там даже вот такое есть:
Цитата
A bit-field shall have a type that is a qualified or unqualified version of_Bool, signed int,unsigned int, or some other implementation-defined type.

И нигде не сказано, что для битового поля будет выделена ячейка памяти, размер которой соответствует указанному типу. Ну просто нигде.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 1 2015, 12:57
Сообщение #22


Гуру
******

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



QUOTE (scifi @ Oct 1 2015, 13:29) *
И нигде не сказано, что для битового поля будет выделена ячейка памяти, размер которой соответствует указанному типу. Ну просто нигде.

А то, что дефиниции int, без разбивки его на биты, размер выделяется "соответствующий указанному типу" и не может быть изменен компиляторописателями где-то написано? Нет?
А зачем тогда ВООБЩЕ тип указывается ("bit-field shall have a type") в такой структуре, если он по Вашему мнению ничего не должен значить? Я битовыми полями пользуюсь десятки лет и на десяках компиляторов и платформ. Да, уровень стандартизации невысок sad.gif, но на практике, при аккуратном четком описании структур, вылезает в реальности только порядк битов. Выделение явно указанному ТИПУ не его размера памяти есть чистый криминал.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 1 2015, 13:09
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(zltigo @ Oct 1 2015, 15:57) *
А то, что дефиниции int, без разбивки его на биты, размер выделяется "соответствующий указанному типу" и не может быть изменен компиляторописателями где-то написано? Нет?

Написано:
Цитата
A "plain" int object has the natural size suggested by the architecture of the execution environment (large enough to contain any value in the range INT_MIN to INT_MAX as defined in the header <limits.h>).


Цитата(zltigo @ Oct 1 2015, 15:57) *
А зачем тогда ВООБЩЕ тип указывается ("bit-field shall have a type") в такой структуре, если он по Вашему мнению ничего не должен значить?

ИМХО, только чтобы различать целое и bool. Ну и знак, естественно. Во всяком случае, из стандарта это следует.
Другое дело, что вот это всё "implementation-defined" позволяет использовать размер целого типа как указание компилятору, какими кусками выделять память под битовые поля. Но, повторюсь, это "implementation-defined".
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 1 2015, 13:17
Сообщение #24


Гуру
******

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



QUOTE (scifi @ Oct 1 2015, 16:09) *
ИМХО, только чтобы различать целое и bool

Глупость. Хотя-бы по той железобетонной причине, что битовые поля существовали в стандарте тогда, когда никакого _Bool, как нативного типа, и близко не было и различать было просто нечего.
QUOTE
Написано:
Цитата
A "plain" int object has the natural size suggested by the architecture of the execution environment (large enough to contain any value in the range INT_MIN to INT_MAX as defined in the header <limits.h>).

Наверное Вы что-то пропустили в цитате, ибо я что-то не увидел, что int допускается в структурах содержащих битовые поля МОЖНО выделять МЕНЬШЕ памяти, чем требуется для INT_MAX?
Или такого не написано? Тогда к чему цитата?



--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 1 2015, 13:35
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(zltigo @ Oct 1 2015, 16:17) *
Наверное Вы что-то пропустили в цитате, ибо я что-то не увидел, что int допускается в структурах содержащих битовые поля МОЖНО выделять МЕНЬШЕ памяти, чем требуется для INT_MAX?
Или такого не написано? Тогда к чему цитата?

Написано, вы просто не стали читать. Напишу снова:
Цитата
An implementation may allocate any addressable storage unit large enough to hold a bit-field.

По-моему, исчерпывающе. Никаких отсылок к размеру типа, используемого при объявлении битового поля. Можете возразить: "Да это же подразумевается, конечно!" На это я возражу, что если такие вещи будут подразумеваться, то и стандарт не нужен, всё ведь и так всем понятно и подразумевается.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 1 2015, 13:47
Сообщение #26


Гуру
******

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



QUOTE (scifi @ Oct 1 2015, 16:35) *
Можете возразить: "Да это же подразумевается, конечно!"

Это НЕ подразумевается это ПРЯМО указывается указанием ТИПА этого самого '"storage unit".
QUOTE
Никаких отсылок к размеру типа, используемого при объявлении битового поля.

Если требование указания ТИПА "storage unit" , не есть такая "отсылка", то что-же это такое sm.gif Ну а то, что Вы процитировали это на самом деле СНЯТИЕ требования к компилятору паковать битовые поля из разных "storage unit" стык в стык, если количество биттов МЕНЬШЕ, чем задано типом "storage unit". Вот так просто.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 1 2015, 14:05
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Ну что ж, можно констатировать, что есть как минимум два мнения о том, что имелось в виду. Надо править текст стандарта, чтобы двух мнений не было.
Кстати, с моей интерпретацией согласны пейсатели книг:
Цитата
Container size - If packing and straddling is not an issue, does the compiler reliably place a bit field within a container of the user-specified size? We cannot be sure, since the Spec. says an implementation can use "any addressable storage unit large enough" to accomodate the bit field.

Взято отсюда.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 1 2015, 14:20
Сообщение #28


Гуру
******

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



QUOTE (scifi @ Oct 1 2015, 17:05) *
Кстати, с моей интерпретацией согласны пейсатели книг:

Я бы не приимал априори, что писатели книг умнее Вас sm.gif.



--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 1 2015, 14:52
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(zltigo @ Oct 1 2015, 17:20) *
Я бы не приимал априори, что писатели книг умнее Вас sm.gif.

Я также не принимал бы априори, что писатели книг глупее кого бы то ни было.

Кстати, а как насчёт техасских инструментов? Отсюда:
Цитата
The declared type of a bit-field is the type that appears in the source code. To hold the value of a bit-field, the C and C++ standards allow an implementation to allocate any addressable storage unit large enough to hold it, which need not be related to the declared type. The addressable storage unit is commonly called the container type, and that is how we refer to it in this document. The container type is the major determinant of how bit-fields are packed and aligned.
C89, C99, and C++ have different requirements for the declared type:
C89 int, unsigned int, signed int
C99 int, unsigned int, signed int, _Bool, or "some other implementation-defined type"
C++ any integral or enumeration type, including bool

Кстати, получается, что стандарт C90 допускает только int, unsigned int, signed int для битовых полей, всё остальное не гарантируется. У меня под рукой нет текста C90, но охотно верю.
И вообще, если пошерстите гугл на предмет "any addressable storage unit", то увидите, что с вашей интерпретацией никто не согласен. Сдавайтесь smile3009.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 1 2015, 20:17
Сообщение #30


Гуру
******

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



QUOTE (scifi @ Oct 1 2015, 17:52) *
Кстати, получается, что стандарт C90 допускает только int, unsigned int, signed int для битовых полей, всё остальное не гарантируется.

Да, не требуется к реализации компилятором. Значит, если компилятор не поддерживает, то будет ругаться. Если поддерживаетт, а неподерживающих, например, тот-же char, встречать не приходилось, то будет вести себя соответствии с заданным типом.
QUOTE
то увидите, что с вашей интерпретацией никто не согласен. Сдавайтесь smile3009.gif

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



--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Oct 2 2015, 06:41
Сообщение #31


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

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



А можно ещё вопрос, раз уж битовые поля вспомнили?

На всех "ширпотребных" компиляторах начало битовой структуры кладётся в младшие биты? Или наоборот где-то есть?


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 2 2015, 08:59
Сообщение #32


Гуру
******

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



QUOTE (esaulenka @ Oct 2 2015, 09:41) *
На всех "ширпотребных" компиляторах начало битовой структуры кладётся в младшие биты? Или наоборот где-то есть?

Есть и часто и в передлах одного компилятора - зависит от контроллера. Старшие-младшие биты прыгают вместе "endian".
У меня все такие места, если это важно, идут с контролем того чем и для чего компилируется. Но других проболем в реале в общем-то нет, ну кроме обычных с паковкой структур.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Oct 2 2015, 09:32
Сообщение #33


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

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Под "ширпотребом" я подразумевал little-endian, конечно же.
ARM'ы всевозможные, x86, 8-битники какие-нибудь - типовой набор эмбеддера.


Теория "в 80-лохматом году покрытый мхом и пылью компилятор для мёртвого процессора делал всё ну вообще через ж." интересна, конечно, но не очень актуальна :-)


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
Artem_Petrik
сообщение Oct 2 2015, 10:48
Сообщение #34


Местный
***

Группа: Свой
Сообщений: 443
Регистрация: 22-07-06
Из: Украина, г. Харьков
Пользователь №: 19 006



Цитата(esaulenka @ Oct 2 2015, 12:32) *
Под "ширпотребом" я подразумевал little-endian, конечно же.
ARM'ы всевозможные, x86, 8-битники какие-нибудь - типовой набор эмбеддера.


Теория "в 80-лохматом году покрытый мхом и пылью компилятор для мёртвого процессора делал всё ну вообще через ж." интересна, конечно, но не очень актуальна :-)

STM8 вполне себе ширпотреб, и он big endian. Так что в лохматые годы углубляться вовсе не обязательно.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Oct 2 2015, 12:03
Сообщение #35


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Artem_Petrik @ Oct 2 2015, 13:48) *
STM8 вполне себе ширпотреб, и он big endian.

О как!? STM8 - прощайте! biggrin.gif
Go to the top of the page
 
+Quote Post

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

 


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


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