|
|
|
Вопрос по выравниванию
|
|||
|---|---|---|---|
|
#18+
Есть такая структура Код: pascal 1. 2. 3. 4. 5. 6. хочу оптимизировать запись этой структуры и объявляю ее так Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. в моем понимании я ничего не изменил. Но теперь перестало читаться поле Arg2.Val. Тест Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Полный тест Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2020, 16:42 |
|
||
|
Вопрос по выравниванию
|
|||
|---|---|---|---|
|
#18+
Что бы просто Variant не использовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2020, 16:47 |
|
||
|
Вопрос по выравниванию
|
|||
|---|---|---|---|
|
#18+
rgreat Что бы просто Variant не использовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2020, 16:56 |
|
||
|
Вопрос по выравниванию
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, А что переложить мешает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2020, 17:01 |
|
||
|
Вопрос по выравниванию
|
|||
|---|---|---|---|
|
#18+
rgreat А что переложить мешает? Вопрос не как сделать, а почему не работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2020, 17:15 |
|
||
|
Вопрос по выравниванию
|
|||
|---|---|---|---|
|
#18+
Delphi 10.3.3 работает как ожидается: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2020, 17:20 |
|
||
|
Вопрос по выравниванию
|
|||
|---|---|---|---|
|
#18+
zedxxx Delphi 10.3.3 работает как ожидается: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2020, 17:30 |
|
||
|
Вопрос по выравниванию
|
|||
|---|---|---|---|
|
#18+
А вот дамп памяти с вашими значениями: 10 00 00 00 00 00 EE EE FF 00 00 00 так что дело, действительно, в выравнивании. В памяти структура теперь представляется как 4 - Integer 2 - WordBool 2 - Word - мусор 2 - SmallInt 2 - WordBool а с обычной структурой оно выравнивалось вот так: 4 - Integer 2 - WordBool 2 - SmallInt 2 - WordBool 2 - Word - мусор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2020, 17:30 |
|
||
|
Вопрос по выравниванию
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ zedxxx Delphi 10.3.3 работает как ожидается: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Хотя-бы Packed Record сделай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2020, 17:46 |
|
||
|
Вопрос по выравниванию
|
|||
|---|---|---|---|
|
#18+
Можно полагаться только на явное выравнивание, которое вы указали. Все что определяется автоматически в целях оптимизации - может в любой момент времени измениться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2020, 17:49 |
|
||
|
Вопрос по выравниванию
|
|||
|---|---|---|---|
|
#18+
rgreat Хотя-бы Packed Record сделай. zedxxx а с обычной структурой оно выравнивалось вот так: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2020, 18:05 |
|
||
|
Вопрос по выравниванию
|
|||
|---|---|---|---|
|
#18+
Почему два байта мусора прыгают по структуре? Странный вопрос. Потому что вложенная структура тоже выравнивается. Packed надо объявлять у всех структур, а там где ты предполагаешь, что должен быть мусор, пропиши его руками. Тогда не будет никаких сюрпризов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2020, 18:24 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39960819&tid=2038298]: |
0ms |
get settings: |
8ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
197ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 213ms |
| total: | 524ms |

| 0 / 0 |
