| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Объем переменной |
| Автор: AlexJohnson 31.3.2009, 08:59 | ||
| Всем привет! Возможно вопрос не касается именно языка с++, но все же: Вот многие знаю что тип int занимает в памяти 4 байта (если я сам не ошибаюсь), а как дело обстоит с именем переменной оно же может быть очень большым, например:
Сколько "места" занимает имя переменной в памяти или оно хранится где-то еще??? |
| Автор: GoldFinch 31.3.2009, 09:01 |
| нигде не хранится |
| Автор: AlexJohnson 31.3.2009, 09:08 | ||
Ммм... а как тогда компилятор понимает что надо "взять" ту или инную переменную?? |
| Автор: InvalidProperty 31.3.2009, 09:15 |
| по ее адресу |
| Автор: GoldFinch 31.3.2009, 09:17 |
| во время компиляции хранится, в скомпилированном бинарнике (.ехе) не хранится... |
| Автор: azesmcar 31.3.2009, 09:20 | ||||
я такого не знаю
говоря что переменная занимает 4 байта не имеется ввиду длина его наименования, а имеется ввиду сколько байт хранится для твоего числа (которое в этой самой переменной). В конечном счете после компиляции твой код превращается в машинный код. Почитай теорию компиляторов, много полезного узнаешь. |
| Автор: AlexJohnson 31.3.2009, 09:29 | ||||
azesmcar, спасибо.
Исходя из того что ты сказал можно ли считать, что вцелом объем занимемого места в памяти перемнной будет сумма длины имени переменной в байтах + количествой байт занимаемой переменной значением? + покурить в сторону:
|
| Автор: azesmcar 31.3.2009, 09:31 | ||
нет, имя переменно никакого значения не имеет, это для создано для твоего удобства во время программирования. В машинном коде переменных нет, там есть адреса |
| Автор: AlexJohnson 31.3.2009, 09:35 | ||
Аааа... вот оно что! Ну ладно, если больше желающих отписаться нету, то поставлю как решеный. 2 azesmcar, а можеш что-то продемонстрировать мне на машинном языке какой-нибудь код, прошу прощения за Всем спасибо! |
| Автор: Rififi 31.3.2009, 09:40 | ||
| AlexJohnson, ... что-то продемонстрировать мне на машинном языке ...
|
| Автор: azesmcar 31.3.2009, 09:41 | ||||||
правда не знаю что он делает
|
| Автор: AlexJohnson 31.3.2009, 09:50 | ||
А как же моя "железяка" (комп) это воспринимает?? Наверно для этого (для меня непонятного) существует свой компилятор. Т.е. реально мне надо курить в сторону компиляторов. |
| Автор: Alexeis 31.3.2009, 10:02 |
| AlexJohnson, комп это не воспринимает. Это ассемблер, он транслируется в машинные команды в результате там будет последовательность байтов, которые загрузит процессор и будет интерпретировать своим внутренним интерпретатором в микрокоманды управления регистрами разного назначения, производя все операции в двоичном виде. |
| Автор: AlexJohnson 31.3.2009, 10:15 |
| Всем большое спасибо!! |
| Автор: GoldFinch 31.3.2009, 10:19 | ||||
исходник sandbox.cpp
скомпилированный файл sandbox.exe, функция main бинарный код: B8 01 00 00 00 C3 дизассемблированый код
|