Спасибо, интересная статья! Не знал, но на практике в своем коде сталкивался с таким,
и интуитивно сам старался избавлятся от таких вещей, кстати. Теперь буду пользоваться осознано.
Тогда в продолжение её логики могу добавить, что выражение с числами:
вполне понятно, и ничего "магического" в цифре 4 нет, поскольку REAL он же FLOAT по смыслу во всех системах занимает 4 байта.Код:stop := (size - 4) / 4;
а брать размер адреса в качестве размера REAL - это ли не запутает еще больше?
а пример из другого блока той же oscat_basic так же работающей с массивами REAL и написаный ровно в таком же месте с такой же целью:
вот вам классический пример "магических чисел" в таком случае.Код:stop := SHR(size,2)-1;
Понятней тогда написать было типа:
Код:SizeOfReal:USINT:=4; stop := (size/SizeOfReal)-1;




Ответить с цитированием