Программирование на C++ глазами хакера




ЗАКОН № 5 - часть 2


Тут же нужно сказать, что вы должны действовать аккуратно и с самими параметрами. Не вздумайте пересылать процедурам переменные, которые могут содержать данные большого объема в чистом виде. Лучше передать адрес ячейки памяти, где хранятся данные, а внутри процедуры работать с этим адресом. Вот представьте себе ситуацию, когда вам нужно передать текст размером в один том "Войны и мира"... Перед входом в процедуру программа попытается вогнать все это в стек. Если вы не увидите его переполнение, то задержка точно будет значительная.

  • В самых критических ситуациях (например, вывод на экран) можно воспользоваться языком Assembler. Даже встроенный в C++ или Delphi ассемблер намного быстрее штатных функций языка. Ну, а если скорость в каком-то месте уж слишком критична, то ассемблерный код можно вынести в отдельный модуль. Там его нужно откомпилировать с помощью компиляторов TASM или MASM и подключить к своей программе.
    Ассемблер — достаточно быстрая и компактная вещь, но писать достаточно большой проект только на нем очень сложно. Поэтому я не советую им увлекаться, и использовать его только в самых критических по скорости местах.



  • Содержание  Назад  Вперед