Цитата
Да, получалось, что ты делал побитовое копирование всех элементов массива, вместо передачи ссылки на этот массив, что намного дороже по времени.
Это где я весь массив копировал? Та шапка - это по сути установка базового адреса, дальше по указателям. По крайней мере осознанно я указатели дергал. Самые большие провалы по скорости были в случаях когда в функцию передается стандартный lua массив и с этим массивом потом начинается математика, при том, что в луа массивы передаются по ссылке/указателю, а не копируются. Меняешь массив на набор переменных и все ок. Причина такого фатального провала по скорости мне не ясна. Есть подозрение, что это связано со скрытыми проверками на выход за пределы массив либо чем-то схожим, но это не более, чем догадка.
Цитата
Так не проще?
Проще. Но тогда мне мозги эта хрень вынесла полностью.
p = a будет number
p = p + a будет number
p = p + 1 будет указатель
p = 1 будет number
p = p - p +1 будет number
для меня логика постигнута не была.
Если p + 1 указатель, то почему p+a уже number? Привел тип? А почему в p + 1 не привел? Типа 1 у нас не тип number, не unsigned int, это просто константа, которая была приведена к уже существующему типу? Тогда почему в p = 1 она не была так же приведена к уже существующему указателю? Может я просто не шарю, но для меня это полностью не логичный бред. Поэтому и с плюсами в свое время не сложилось. Ну не понять мне зачем 10 раз переобъявлять стандартные типые данных. Я не против строгой типизации, но когда я вижу какой-нибудь LPSTR у меня глаз начинает дергаться. И только попробуй ему подсунуть какой-то зашкварный указатель, ему нужно только LPSTR, а то, что он будет точно таким же указателем - так это пофигу. Хотелось убивать.
Сообщение отредактировал DarkMaster - 28.3.2021, 21:20