![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
gepard |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2477 Регистрация: 29.2.2004 Репутация: 2 Всего: 40 |
Появится две строчки:
Как так? Куда память утекает? -------------------- Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным! © Я, Берсерк, что значит - Неистовый. |
||||
|
|||||
chipset |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
а сама структура разве не учитывается?
![]() --------------------
|
|||
|
||||
bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
gepard
Дык, а про выравнивание забыл? ![]()
Вот теперь проверь ![]() Это сообщение отредактировал(а) bel_nikita - 14.6.2004, 08:34 |
|||
|
||||
gepard |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2477 Регистрация: 29.2.2004 Репутация: 2 Всего: 40 |
chipset
1 b, но никак не 6. bel_nikita Блин, вот что значит кодить в 1 ночи ![]() До этого сидел листал посты с форума и видел тему про выравнивание. Почитал же ещё! Всё, пора завязывать ![]() Кстати, а что творит это выравнивание? Как определить, когда его надо использовать(кроме проверки на размер структуры, конечно ) Это сообщение отредактировал(а) gepard - 14.6.2004, 15:33 -------------------- Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным! © Я, Берсерк, что значит - Неистовый. |
|||
|
||||
bel_nikita |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
gepard
Очень просто. Стандартно граница выравнивания стоит в 8 байт. Вообще-то это доку к компилеру смотреть надо. Там такие вещи обязательно пишут. Так, вот, если ты используешь структуры или классы в которых есть типы меньше 8 байт, то надо выравнивать. Хотя не обязательно. Это смотря для чего используется структура. Например, если ты некий класс или структуру проецируешь на память. Ну или, например чтение с файла. Ты знаешь, что данные в файле записаны в виде cls . Тебе надо их считать. Так вот, если у тебя выравнивание в 8 байт, то будут траблы ![]() Рано или поздно у всех такие проблемы возникают. И довольно часто задаются вопросы по этому поводу. Только вот в FAQ этого почему-то нет ![]() Вот, два примера. Посмотри как память распределяется. Думаю все ясно станет
Наверное еще будет вопрос: А почему имеено выравнивание по границе 8 байт, а не 1. Ответ прост - оптимизация ![]() |
||||||
|
|||||||
gepard |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2477 Регистрация: 29.2.2004 Репутация: 2 Всего: 40 |
По-моему стоило бы поместить в FAQ. bel_nikita Спасибо, за объяснение. -------------------- Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным! © Я, Берсерк, что значит - Неистовый. |
|||
|
||||
lynx_916 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 13.6.2004 Где: Молдова Репутация: нет Всего: 1 |
не КБ а Б
размер-то в байтах! Это сообщение отредактировал(а) lynx_916 - 14.6.2004, 11:26 -------------------- Who dares, wins. (с) Solid Snake |
|||
|
||||
gepard |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2477 Регистрация: 29.2.2004 Репутация: 2 Всего: 40 |
Без флейма. -------------------- Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным! © Я, Берсерк, что значит - Неистовый. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |