Size: a a a

2021 February 18

АЗ

Андрей Зиготов... in supapro.cxx
SupaproBot
Переслано от Андрей Зиготов
Привет, я не смог найти чат по си, подумал что у с++ и си достаточно похожий синтаксис, сам я питонист, прошу помощи, есть исходный код
https://github.com/fengjixuchui/Tiktok/blob/master/douyin.c
В нем есть 2 функции, но я не уверен что они корректно работают, мне нужно их запустить, подскажите как, компилировать думаю удобнее всего онлайн для теста, функции - uchar __stdcall XlogDecrypt(uchar data, int *psize) и uchar __stdcall XlogEncrypt(uchar data, int *psize), скажите как мне их вызвать в мейне правильно, так же не понял что значит uchar, везде обычно добавляются размерности, а тут его нет, так же не понимаю зачем звездочка, это значит что мы должны передавать в функцию указатель? Т.е, чтобы протестировать функцию мне нужно взять строку и указатель на каждый символ передать в функцию раз она должна возвращать uchar? Буду сильно благодарен за помощь, разбираться в си с нуля нет особого желания, может тут найдутся кто знает ответы
К моему вопросу уточнение
источник

АЗ

Андрей Зиготов... in supapro.cxx
Переслано от Андрей Зиготов...
строки функций - 865, 903*
источник

LA

Liber Azerate in supapro.cxx
Alexey Dashko
А какие могут там быть ещё оптимизации кроме мувов? Встраивание возвращаемого объекта прямо на стек?
Вообще говоря, обязательное RVO с семнадцатого стандарта примерно так и работает, "матриализует" объект
источник

AD

Alexey Dashko in supapro.cxx
Спасибо. Там выше про NRVO тоже писали. Пойду конкретнее почитаю
источник

LA

Liber Azerate in supapro.cxx
Alexey Dashko
Спасибо. Там выше про NRVO тоже писали. Пойду конкретнее почитаю
NRVO это другое, оно не обязательное. Тут разница, собственно, в букве N :) N – named. Именованные объекты компилятор может и не оптимизировать
источник

S

SupaproBot in supapro.cxx
Привет всем). Я изучаю C++ недавно и у меня возник  вопрос: не понимаю зачем нужны встраиваемые ф-ии?
понятно, что они копируют код из ф-ии и встраивают этот код вместо вызова ф-ии, памяти почти не выделяется, да и времени не очень много требуют, и ф-ия должна иметь только несколько операторов чтобы встроить эти строки в код программы, а то если будет слишком большой то компилятор будет ее игнорировать или считать обычной ф-ей. Так почему же просто не написать несколько этих операторов вручную...?
источник

IZ

Ilia Zviagin in supapro.cxx
SupaproBot
Привет всем). Я изучаю C++ недавно и у меня возник  вопрос: не понимаю зачем нужны встраиваемые ф-ии?
понятно, что они копируют код из ф-ии и встраивают этот код вместо вызова ф-ии, памяти почти не выделяется, да и времени не очень много требуют, и ф-ия должна иметь только несколько операторов чтобы встроить эти строки в код программы, а то если будет слишком большой то компилятор будет ее игнорировать или считать обычной ф-ей. Так почему же просто не написать несколько этих операторов вручную...?
Потому что человеку удобнее думать об этих двух-трёх операторах как о функции,
И кроме этого не всегда функцию возможно встраивать иногда она нужна именно как функция
источник

K

Kirill in supapro.cxx
SupaproBot
Привет всем). Я изучаю C++ недавно и у меня возник  вопрос: не понимаю зачем нужны встраиваемые ф-ии?
понятно, что они копируют код из ф-ии и встраивают этот код вместо вызова ф-ии, памяти почти не выделяется, да и времени не очень много требуют, и ф-ия должна иметь только несколько операторов чтобы встроить эти строки в код программы, а то если будет слишком большой то компилятор будет ее игнорировать или считать обычной ф-ей. Так почему же просто не написать несколько этих операторов вручную...?
Наверно имеется ввиду оператор inline. Всё что он делает - это разрешает множественное определение, больше он ни на что не влияет
источник

DP

Denis Paukaev in supapro.cxx
Kirill
Наверно имеется ввиду оператор inline. Всё что он делает - это разрешает множественное определение, больше он ни на что не влияет
влияет, он повышает вероятность встраивания)
источник

MK

Mikhail Kalugin in supapro.cxx
SupaproBot
Привет всем). Я изучаю C++ недавно и у меня возник  вопрос: не понимаю зачем нужны встраиваемые ф-ии?
понятно, что они копируют код из ф-ии и встраивают этот код вместо вызова ф-ии, памяти почти не выделяется, да и времени не очень много требуют, и ф-ия должна иметь только несколько операторов чтобы встроить эти строки в код программы, а то если будет слишком большой то компилятор будет ее игнорировать или считать обычной ф-ей. Так почему же просто не написать несколько этих операторов вручную...?
Современный компилятор итак всегда сам решает инлайнтить что-то или нет (ну и некоторые вещи всегда инлайн), так что об этом не стоит особо волноваться.
источник

K

Kirill in supapro.cxx
Denis Paukaev
влияет, он повышает вероятность встраивания)
-O3 и без указаний программиста встроит всё что сможет
источник

DP

Denis Paukaev in supapro.cxx
Kirill
-O3 и без указаний программиста встроит всё что сможет
перечитай то что я написал
источник

DP

Denis Paukaev in supapro.cxx
причем тут O3 не понятно
источник

K

Kirill in supapro.cxx
Denis Paukaev
перечитай то что я написал
Если компилишь с O3(любой продакшен) - inline на вероятность встраивания не повлияет
источник

DP

Denis Paukaev in supapro.cxx
Kirill
Если компилишь с O3(любой продакшен) - inline на вероятность встраивания не повлияет
пруф?
источник

DP

Denis Paukaev in supapro.cxx
в стандарт уже внесли упоминание O3, или я что-то пропустил?
источник

K

Kirill in supapro.cxx
источник

DP

Denis Paukaev in supapro.cxx
зачем мне ссылка на so?
источник

DP

Denis Paukaev in supapro.cxx
где вопрос тем более конкретно про гцц)
источник

K

Kirill in supapro.cxx
Щас почти всё компилится gcc
источник