Хонич А.
Как самому создать трехмерную игру
стр. 274

# define Angle(a) ((a) * MAXDEGREES/360)

Инициализацию таблиц синусов и косинусов можно представить так:

В этой функции быстродействие не важно, т.к. она вызывается только один раз при старте программы. Следовательно, никто не мешает вам использовать здесь “плавающую” арифметик)'.

3. Желательно, чтобы количество передаваемых параметров при вызове функции не превышало 4 (3).

При работе на WATCOM C/C++, с использованием регистровой передачи параметров (ключи компилятора: /Зг - для 386 процессора; /4г - для 486 процессора; /5т - для PENTIUM’a), первые четыре параметра в функцию передаются в регистрах процессора, а остальные через стек. Прн этом в регистре еах передается первый параметр; в edx - второй; в ebx - третий; в есх - четвертый.

Как вы, знаете, регистровая передача параметров работает намного быстрее. Кроме того, если вызываемая функция написана на ассемблере, то использование в ней параметров, передача которых осуществлялась через стек, связано с определенными трудностями, заключающимися в локализации этих переменных внутри стека (нахождение смещения внутри стека с учетом того,

a)    4 байта вычитается из стека при вызове функции near;

b)    сохранение регистров в стеке. На каждый 32-разрядный регистр из стека так же вычитается 4 байта).

Если вы работаете на СРР и используете классы, то желательно, чтобы количество параметров передаваемых в функцию не превышало 3, т.к первым параметром в функцию (в регистре ЕАХ) передается указатель на класс.

Новости
3-й эпизод Hitman завтра станет бесплатным
Tomorrow the HITMAN: Summer Pack arrives. Giving you access to download Episode 3: Marrakesh.
Разработчики шутера GTFO показали новых врагов-теней в действии
Разработчики продемонстрировали в действии новых врагов-теней.