Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Объем переменной 
V
    Опции темы
AlexJohnson
Дата 31.3.2009, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 2.4.2007

Репутация: нет
Всего: нет



Всем привет!
Возможно вопрос не касается именно языка с++, но все же:
Вот многие знаю что тип int занимает в памяти 4 байта (если я сам не ошибаюсь), а как дело обстоит с именем переменной оно же может быть очень большым, например:

Код

int dfnsdonskjfnsodfnmsdokfnsdokfns_dokfsdnfmoksoksndfsdfnsodjnobjnv = 100;


Сколько "места" занимает имя переменной в памяти или оно хранится где-то еще???
PM MAIL   Вверх
GoldFinch
Дата 31.3.2009, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 6
Всего: 26



нигде не хранится
PM MAIL ICQ   Вверх
AlexJohnson
Дата 31.3.2009, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 2.4.2007

Репутация: нет
Всего: нет



Цитата

нигде не хранится


Ммм... а как тогда компилятор понимает что надо "взять" ту или инную переменную??
PM MAIL   Вверх
InvalidProperty
Дата 31.3.2009, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 356
Регистрация: 31.10.2007
Где: Россия, Казань

Репутация: 2
Всего: 9



по ее адресу


--------------------
dd if=$0 of=$0 bs=1 count=76 seek=`du -b $0 | awk {'print $1'}` 2>/dev/null
dd if=$0 of=$0 bs=1 count=67 conv=notrunc oflag=append 2>/dev/null
echo $0 >> $0
PM MAIL ICQ Jabber   Вверх
GoldFinch
Дата 31.3.2009, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 6
Всего: 26



во время компиляции хранится, в скомпилированном бинарнике (.ехе) не хранится...
PM MAIL ICQ   Вверх
azesmcar
Дата 31.3.2009, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Цитата

Вот многие знаю что тип int занимает в памяти 4 байта 


я такого не знаю smile на многих платформах он занимает 4 байта, но гарантии тут нету.

Цитата

Ммм... а как тогда компилятор понимает что надо "взять" ту или инную переменную?? 

говоря что переменная занимает 4 байта не имеется ввиду длина его наименования, а имеется ввиду сколько байт хранится для твоего числа (которое в этой самой переменной). В конечном счете после компиляции твой код превращается в машинный код. Почитай теорию компиляторов, много полезного узнаешь.
PM   Вверх
AlexJohnson
Дата 31.3.2009, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 2.4.2007

Репутация: нет
Всего: нет



azesmcar, спасибо.

Цитата

говоря что переменная занимает 4 байта не имеется ввиду длина его наименования, а имеется ввиду сколько байт хранится для твоего числа (которое в этой самой переменной).


Исходя из того что ты сказал можно ли считать, что вцелом объем занимемого места в памяти перемнной будет сумма длины имени переменной  в байтах + количествой байт занимаемой переменной значением?

+ покурить в сторону:

Цитата

Почитай теорию компиляторов, много полезного узнаешь.

PM MAIL   Вверх
azesmcar
Дата 31.3.2009, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Цитата

Исходя из того что ты сказал можно ли считать, что вцелом объем занимемого места в памяти перемнной будет сумма длины имени переменной  в байтах + количествой байт занимаемой переменной значением?


нет, имя переменно никакого значения не имеет, это для создано для твоего удобства во время программирования. В машинном коде переменных нет, там есть адреса
PM   Вверх
AlexJohnson
Дата 31.3.2009, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 2.4.2007

Репутация: нет
Всего: нет



Цитата

В машинном коде переменных нет, там есть адреса


Аааа... вот оно что!  smile 

Ну ладно, если больше желающих отписаться нету, то поставлю как решеный.

azesmcar, а можеш что-то продемонстрировать мне на машинном языке какой-нибудь код, прошу прощения за  smile !

Всем спасибо!

PM MAIL   Вверх
Ofer
Дата 31.3.2009, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 293
Регистрация: 15.10.2006
Где: КривбаСС

Репутация: нет
Всего: 5



Цитата(AlexJohnson @  31.3.2009,  09:29 Найти цитируемый пост)
Исходя из того что ты сказал можно ли считать, что вцелом объем занимемого места в памяти перемнной будет сумма длины имени переменной  в байтах + количествой байт занимаемой переменной значением?


Нет. В скомпилированном exe файле имена переменных не сохраняются. То есть переменные

Код

int i = 0;
int peremennaja_s_dlinnum_imenem = 12345;


имеют одинаковый размер.

Добавлено через 2 минуты и 45 секунд
Вот машинный код smile

Код

:100000000C94AA000C94190E0C9429010C94C700AE
:100010000C94C7000C94C7000C94C7000C94C70044
:100020000C94C7000C94C7000C94C7000C94D8061D
:100030000C94C7000C94640C0C94C7000C94C7007B
:100040000C94C7000C94C7000C94C7000C94C70014
:100050000C94C700000102030405060708090A0BF7
:100060000C0D0E0F101112131415161718191A1B58
:100070001C1D1E1F202122232425262728292A2B48
:100080002C2D2E2F303132333435363738393A3B38
:100090003C3D3E3F404142434445464748494A4B28
:1000A0004C4D4E4F505152535455565758595A5B18
:1000B0002F5D5E5F606162636465666768696A6B35
:1000C0006C6D6E6F707172737475767778797A7BF8
:1000D0007C7D7E7F41A042A1E045A3A4A5A64BA7BD
:1000E0004D484FA8504354A9AA58E1ABACE2ADAE7D
:1000F000ADAFB0B161B2B3B4E365B6B7B8B9BABB2E
:10010000BCBD6FBEF8F8F85DFDFDFD5F5FFD5D5F96
:100110006161615F60FAF9FC2DFBFCFC605EFAF93D
:10012000FC2DFBFAFAF9F960605E5EFBFB615E2074
:10013000202020207063BF79E478E5C0C1E6C2C307
:10014000C4C5C6C74500000102032020DFE7FDC883
:10015000C920202011241FBECFE5D8E0DEBFCDBFCF
:1001600011E0A0E6B0E0E0EFF3E202C005900D92EE
:10017000A63CB107D9F713E0A6ECB1E001C01D928F

PM MAIL ICQ   Вверх
Rififi
Дата 31.3.2009, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: 3
Всего: 36



AlexJohnson

... что-то продемонстрировать мне на машинном языке ...

Код
4АхгVХ╗ГЕч╨·Z~Ak┐shхu;М╓║:][:nl№╔
║▀%фЬ╖#╚юAу6шU|F╖d4щd╖*эM~║╫▒35ор&∙ые
жиОг iwиЇ%Ї┐Bu&╘Ї╪`LНА╟ЇW+cтч
йx╪╢ёPOh╜ыэ┐╣g'VW}n#Y_э{рuqt{4ч
╩qпz▄х3╓7-юаОAp ;цё╝знO[▒З~9eC╗┐╖K2}ф
XZ┬їР>VдS╣╬мщФp5┌Ч╨┌Бмr6ху ь[ЙсзМШп
ькsПЄТ╘&ёТд]QO╜OДЕw═╘нр.qэ h x╓

PM MAIL   Вверх
azesmcar
Дата 31.3.2009, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Цитата

2 azesmcar, а можеш что-то продемонстрировать мне на машинном языке какой-нибудь код, прошу прощения за  smile !

 smile
Код

001110101101001010001101101011001100001110101101001010001101101011001100
010110100101000110110101100110000111010110100101000110110101100110011101
010010100011011010110011000011101011010010100011011010110011001110110001


правда не знаю что он делает  smile могу на ассемблере, это почти машинный код
Код

mov         eax,dword ptr [ebp-14h] 
add         eax,48h 
mov         ecx,dword ptr [ebp-14h] 
add         ecx,64h 
mov         dword ptr [ebp-13Ch],ecx 
mov         dword ptr [ebp-13Ch],0 
mov         edx,dword ptr [ebp-13Ch] 
push        edx  
mov         ecx,dword ptr [ebp-14h] 
mov         ecx,eax 


PM   Вверх
AlexJohnson
Дата 31.3.2009, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 2.4.2007

Репутация: нет
Всего: нет



Код

mov         eax,dword ptr [ebp-14h] 
add         eax,48h 
mov         ecx,dword ptr [ebp-14h] 
add         ecx,64h 
mov         dword ptr [ebp-13Ch],ecx 
mov         dword ptr [ebp-13Ch],0 
mov         edx,dword ptr [ebp-13Ch] 
push        edx  
mov         ecx,dword ptr [ebp-14h] 
mov         ecx,eax 

А как же моя "железяка" (комп) это воспринимает?? Наверно для этого (для меня непонятного) существует свой компилятор. Т.е. реально мне надо курить в сторону компиляторов.

 smile Нашел такое понятие как "автомат", что это???
PM MAIL   Вверх
Alexeis
Дата 31.3.2009, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 4
Всего: 459



AlexJohnson, комп это не воспринимает. Это ассемблер, он транслируется в машинные команды в результате там будет последовательность байтов, которые загрузит процессор и будет интерпретировать своим внутренним интерпретатором в микрокоманды управления регистрами разного назначения, производя все операции в двоичном виде.  


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
AlexJohnson
Дата 31.3.2009, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 2.4.2007

Репутация: нет
Всего: нет



Всем большое спасибо!!
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0820 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.