Size: a a a

🎄Embedded Group

2021 January 21

AK

Andy Korg in 🎄Embedded Group
Anton Kirilenko
Товарищи господа. У меня тут возникла сложность с пониманием работы с переменными в языке Си. Мне посоветовали книжку Дьюхерста, но там нет этой базовой инфы, всё рассчитано на более умных людей.
переменная в си это именованая область памяти о которой что-то знает компилятор. т.е. компилятор знает размер этой области, как интерпретировать значения хранящиеся в этой области ( т.н. тип) вот и все для начала.
источник

AK

Anton Kirilenko in 🎄Embedded Group
нуяэто... на бейсике писал, потом 10-12 лет на ассемблере z80. ссуть то понимаю
источник

AK

Anton Kirilenko in 🎄Embedded Group
а вот как в Си всё это организовано, как обращаться с переменными, где там адреса памяти, а не сами переменные - пока не понимаю %)))
источник

l

lbh in 🎄Embedded Group
Anton Kirilenko
а вот как в Си всё это организовано, как обращаться с переменными, где там адреса памяти, а не сами переменные - пока не понимаю %)))
адреса как таковые в числовом виде в большинстве случаев не нужны. тебе нужны указатели
источник

l

lbh in 🎄Embedded Group
если интересно как всё физически в памяти располагаться будет, то можно с линкера листинг потребовать
источник

l

lbh in 🎄Embedded Group
если хочешь вручную что-то где-то разместить, то такая возможность часто тоже есть
источник

l

lbh in 🎄Embedded Group
но это уже зависит от компилятора
источник

AK

Anton Kirilenko in 🎄Embedded Group
на ассемблерах всё гораздо проще было, ёптыть
источник

AK

Anton Kirilenko in 🎄Embedded Group
карочи почитаю те два пдфа сначала
источник

l

lbh in 🎄Embedded Group
ну как сказать. си это практически асм
источник

l

lbh in 🎄Embedded Group
разница в том что писанины несколько меньше. а так когда пишешь сишный код, приблизительно видишь во что он на асме превратится
источник

l

lbh in 🎄Embedded Group
этим то си и интереснее плюсов :D (по моему скромному мнению)
источник

AK

Andrew K in 🎄Embedded Group
Anton Kirilenko
Итак вопрос - присоветуйте книжку, где нормально рассказано, как работают объявления переменных, куда и что складывается, в какой тип памяти и подобное.
ну так все в итоге к указателям и сводиться, цпу работает с адресами другого он не понимает.
источник

AK

Andrew K in 🎄Embedded Group
если при разборе нужно знать как с этими адресами работать это нужно отладочную информацию разбирать.
источник

AK

Anton Kirilenko in 🎄Embedded Group
нужно знать, как оно вобще в Ц работает
источник

AK

Anton Kirilenko in 🎄Embedded Group
я почитаю пдфки, что вон там чуть выше были
источник

AK

Andrew K in 🎄Embedded Group
я хотел поработать с классом по его адресу на асме (this) и получалось так что у статически созданного класса и у динамически разные смещения переменных внутри класса почему так хз
источник

AK

Andy Korg in 🎄Embedded Group
Andrew K
я хотел поработать с классом по его адресу на асме (this) и получалось так что у статически созданного класса и у динамически разные смещения переменных внутри класса почему так хз
статический класс размещается один раз при компиляции и больше никак не перемещается и не изменяется. т.е. куски кода и переменные всегда находятся в одном и том же месте. если же создается новый экземпляр нестатического класса то каждый раз память выделяется снова и там уже всякие нюансы вылазят.
источник

SK

Stas Koynov in 🎄Embedded Group
Andrew K
я хотел поработать с классом по его адресу на асме (this) и получалось так что у статически созданного класса и у динамически разные смещения переменных внутри класса почему так хз
ну может конечно ппц какая оптимизация, но он что и для этого обьекта и методы еще раз перегенирирует? чет как то подозрительно
источник

AK

Anton Kirilenko in 🎄Embedded Group
или наоборот  - ппц какое распиздяйство у конь пелятора
источник