Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 23.03.2014
Сообщений: 79
1

Экономия памяти

09.12.2014, 16:25. Показов 1355. Ответов 4
Метки нет (Все метки)

Скажите, будет ли второй вариант кода занимать меньше памяти?
1ый вариант:
C++
1
2
float a;
f(a);
2ый вариант:
C++
1
2
#define a 5.33
f(a);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2014, 16:25
Ответы с готовыми решениями:

Экономия памяти
Здравствуйте, уважаемые программисты! Как разместить информацию о числах из массива, используя...

Экономия памяти при упаковке данных
Здравствуйте, уважаемые программисты! Есть такая задача: Задан упорядоченный целочисленный...

Скорость или экономия памяти - что бы выбрали Вы?
...

Экономия памяти или борьба с точками. (что-то типа массива ссылок хотелось бы иметь)
У меня есть объект Point. И есть Объект Grup. В объекте Grup я выделил динамически память под...

__________________

Записывайтесь на профессиональные курсы C++ разработчиков
4
Форумчанин
Эксперт CЭксперт С++
8165 / 5013 / 1436
Регистрация: 29.11.2010
Сообщений: 13,455
09.12.2014, 16:41 2
Меньше - не факт. Не больше - да.
1
1 / 1 / 0
Регистрация: 23.03.2014
Сообщений: 79
09.12.2014, 16:49  [ТС] 3
MrGluck, привет!
Задача заключается в том, чтобы программа занимала как можно меньше места. По моим представлениям в 1ом варианте выделяется 4 байта под переменную, это мне ясно. А что со вторым вариантом? Куда тратятся 4 байта в этом случае?
0
:)
Эксперт С++
4766 / 3260 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
09.12.2014, 16:56 4
Цитата Сообщение от MrGluck Посмотреть сообщение
Не больше - да.
Тоже не факт. Т.к. 5.33 это double, а "a" - float.
Но во всех этих интерпретациях я бы предложил остановиться на таком варианте:
C++
1
2
const float a =  5.33f; // если действительно нужен float
f(a);
Добавлено через 1 минуту
Цитата Сообщение от Harb Посмотреть сообщение
чтобы программа занимала как можно меньше места.
Какого места? Размер файла на диске или выделенной памяти?
1
14112 / 7574 / 1801
Регистрация: 30.01.2014
Сообщений: 12,678
09.12.2014, 16:59 5
Цитата Сообщение от Harb Посмотреть сообщение
По моим представлениям в 1ом варианте выделяется 4 байта под переменную, это мне ясно.
В текущем варианте этот код эквивалентен.
Цитата Сообщение от Harb Посмотреть сообщение
А что со вторым вариантом? Куда тратятся 4 байта в этом случае?
Чтобы передать параметр в функцию, его нужно положить на стек. Вот туда и тратятся. (Оставим в стороне пока вырожденные случаи, когда f - встраиваемая функция).
Только память не выделяется. Она уже есть и довольно много (в windows по-умолчанию вроде бы 1мб). Выделена сразу при запуске приложения. В обычных условиях стековая память не увеличивается и не уменьшается.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.12.2014, 16:59

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Экономия по времени
Приветствую всех! Как сделать данную программу максимально быстрой, для прохождения теста в...

Экономия трафика при передачи последовательности изображений в сети за счет эффективного кодирования
Всем добрый день! Есть такая задачка: мы берем последовательность изображений и передаем в сеть как...

Выделить в памяти 1024 ячейки по 8 байт и вывести их адреса(МИНИ менеджер памяти))
Вот тут появилась такая интересная задача: требуется сделать программу которая управляет 1024...

Можно ли разместить переменную в нужную ячейку памяти и реально ли хранить данные, разбросанными по памяти?
Добрый день. Не могу найти информацию по двум вопросам : 1) могу ли я разместить переменную в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.