Size: a a a

cxx.Дискуссионная

2020 February 07

YP

Yegor Popov in cxx.Дискуссионная
Подскажите че тут происходит
источник

RM

Roy Mustang in cxx.Дискуссионная
Ты используешь prepare ?
источник

RM

Roy Mustang in cxx.Дискуссионная
Стоит вообще его использовать?
источник

RM

Roy Mustang in cxx.Дискуссионная
Помещает указатели равные 8 байтам в RDX и RAX, потом регистры с данными перемещаются в регистры назначения и затем вызывается allign_arrays и обарабтываются полученные из указателя данные, вроде так
источник

+J

++ Joka; in cxx.Дискуссионная
Yegor Popov
Есть такой код. Функция align_arrays находит меньшую из двух строк и дозаполняет ее нулями до длины большей строки. Меня интересует то, как происходит аллокация length. Пока у меня 2 версии:
1) Сначала переменная аллоцируется, и затем ей присваивается значение функции;
2) Сначала выполняется функция, ее результат уходит в регистр. Затем переменная аллоцируется и ей присваивается значение;
Какой из них верный?
вообще я не уверен что что-то будет аллоцироваться на стеке, он просто вызовет конструктор на кусок которую ОС выделяла под прогу как стек.
источник

RM

Roy Mustang in cxx.Дискуссионная
Если коротко, то это что-то вроде откуда, куда что сделать
источник

RM

Roy Mustang in cxx.Дискуссионная
В твоем случае, [rbp+24] - это указатель на память куда данные будут помещены из [rbp+16]
источник

YP

Yegor Popov in cxx.Дискуссионная
ну крч результат функции помещается в уже готовую "ячейку", так?
источник

RM

Roy Mustang in cxx.Дискуссионная
Yegor Popov
ну крч результат функции помещается в уже готовую "ячейку", так?
Что делает функция align_arrays?
источник

YP

Yegor Popov in cxx.Дискуссионная
Берет меньшую строку и дозаполняет ее нулями до длины первой
источник

+J

++ Joka; in cxx.Дискуссионная
Yegor Popov
Берет меньшую строку и дозаполняет ее нулями до длины первой
а что она вернет?
источник

YP

Yegor Popov in cxx.Дискуссионная
общую длину
источник

RM

Roy Mustang in cxx.Дискуссионная
Yegor Popov
Берет меньшую строку и дозаполняет ее нулями до длины первой
Какие аргументы принимает?
источник

+J

++ Joka; in cxx.Дискуссионная
Yegor Popov
общую длину
ну если она уместится в 1 байт от 0 до 255, то проблем не будет. И получается, что сначала там мусор, а потом туда копируется значение из функции.
источник

YP

Yegor Popov in cxx.Дискуссионная
const char*'ы
источник

RM

Roy Mustang in cxx.Дискуссионная
++ Joka;
ну если она уместится в 1 байт от 0 до 255, то проблем не будет. И получается, что сначала там мусор, а потом туда копируется значение из функции.
Ты про al?
источник

YP

Yegor Popov in cxx.Дискуссионная
++ Joka;
ну если она уместится в 1 байт от 0 до 255, то проблем не будет. И получается, что сначала там мусор, а потом туда копируется значение из функции.
а она по дефолту 255?
источник

+J

++ Joka; in cxx.Дискуссионная
Roy Mustang
Ты про al?
я про его автоматическую length (не про асм)
источник

RM

Roy Mustang in cxx.Дискуссионная
Yegor Popov
const char*'ы
Сколько? Две штуки?
источник

YP

Yegor Popov in cxx.Дискуссионная
да
источник