![]() |
|
![]() ![]() ![]() |
|
onetimer |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 30.5.2006 Репутация: нет Всего: нет |
Есть типы:
Использую #pragma option -a1 Проблема в том, что мне СОВЕРШЕННО необходимо поместить это в 4 байта, а зараза билдер делает 6: сует [C++ Warning] : W8059 Structure packing size has changed. На основании "According to the C and C++ language specifications, the alignment and storage of bit fields is implementation defined. Therefore, compilers can align and store bit fields differently. If you want complete control over the layout of bit fields, it is advisable to write your own bit field accessing routines and create your own bit fields." считает себя правым. Есть советы? Предложения? |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
делай так и не парься:
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
onetimer |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 30.5.2006 Репутация: нет Всего: нет |
Совершенно глупый совет, извините!
Это сообщение отредактировал(а) onetimer - 22.4.2008, 23:08 |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
и чего не так?!
http://ipicture.ru/uploads/080423/MVhynWgxxA.png если вы будете внимательными, то может заметите что я заменл структуру объединением. Это сообщение отредактировал(а) jonie - 23.4.2008, 00:23 -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
onetimer |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 30.5.2006 Репутация: нет Всего: нет |
и это об'единило все битовые поля! Потому я и привел фрагмент кода, чтобы Вы сами могли убедиться!
|
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 32 Всего: 158 |
|
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
а ну да, я идиот, признаю.
в любом случае pragma pack(1)+правильное использование битовых масок (), по идее работать должно... -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
onetimer |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 30.5.2006 Репутация: нет Всего: нет |
dumb вариант не работает.
Еще идеи? Это сообщение отредактировал(а) onetimer - 23.4.2008, 16:17 |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 32 Всего: 158 |
||||
|
||||
onetimer |
|
||||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 30.5.2006 Репутация: нет Всего: нет |
Не работает: можете убедиться самостоятельно.
Совершенно не согласен ни с тем ни с другим. |
||||
|
|||||
Rififi |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 1 Всего: 36 |
onetimer,
откомпилировал этот код на древнем VC 6.0 sp6
выхлоп:
отсюда вывод про борланд: "ну не шмогла я, не шмогла..." |
||||
|
|||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
onetimer вариант dump отработал у меня не совсем норм. builder6 (вывел 4,300,5)
вообще корректнее пихать все поля в DWORD... и делать битовые поля "из этого типа"... в общем-то можно написать свой класс обертуку на DWORD-ом) уж если это не заработает разбить монитор... Это сообщение отредактировал(а) jonie - 23.4.2008, 23:21 -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
onetimer |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 30.5.2006 Репутация: нет Всего: нет |
Только BCB6. VC в любом соусе, пожалуйста, не предлагать ![]() jonie, как я могу получить (вывел 4,300,5)? Я был бы рад! Нельзя ли выложить весь проект? У меня размер 6 байт. Могу добиться и 8 ![]() Класс сделать можно и, скорее всего, нужно, но пока пытаюсь без, по-простому. Через DWORD дурной стиль - поля могут и будут меняться. |
|||
|
||||
Rififi |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 1 Всего: 36 |
onetimer,
не будем. ведь так интересно и весело наблюдать за мучениями борландятников :grin: |
|||
|
||||
onetimer |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 30.5.2006 Репутация: нет Всего: нет |
Если долго мучиться - что-нибудь получится! Может быть ![]() |
|||
|
||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 1 Всего: 17 |
С чего вдруг дурной стиль? Причём сами же в первом посте определяете типы byte и word, хотя в Билдере уже есть Byte, Word, BYTE и WORD -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
HappyLife |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 17.5.2006 Репутация: 4 Всего: 8 |
На самом деле, объявить тип как DWORD и использоваться битовые операции, самое оно как обычно поступают.
|
|||
|
||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 1 Всего: 17 |
HappyLife, во-во, я бы тоже так сделал, а не парился бы со всякими обёртками
-------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 32 Всего: 158 |
не стоит обобщать. в данном конкретном случае это проблема невнимательности топикстартера.
уже убедился - работает. вместо раздувания топика, лучше б внимательно читал - в приведенном мной отрывке изменилось не только написание прагмы. "дурной стиль"?! - ты когда описываешь типом byte битовые поля, которые "пересекают" границы этого самого байта, чего ожидаешь? тут и word "проканывает" только из-за того, что поля в него вмещаются. |
|||
|
||||
onetimer |
|
||||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 30.5.2006 Репутация: нет Всего: нет |
Не Borlandом единым мы живем. Есть еще, например, GCC.
Сознаюсь, не заметил, сорри. Спорить о стиле занятие дурное - пусть каждый выбирает себе сам, а жизнь рассудит. PS A вот общаться с незнакомым человеком на "ты", вне всяких сомнений дурной стиль и бескультурие, хотя это уже за пределами топика. Это сообщение отредактировал(а) onetimer - 24.4.2008, 16:00 |
||||
|
|||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 32 Всего: 158 |
||||
|
||||
onetimer |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 30.5.2006 Репутация: нет Всего: нет |
Остаюсь при своем мнении. Спор не рождает истину, но может порадить вражду. Культура остается таковой и в сети и в жизни.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |