|
|
|
|
Защита целостности передаваемых данных
Имеется другой аспект опции "передача по ...", который является очень важным и облегчающим использование. Этот аспект относится к целостности данных
или к их защите от непреднамеренного изменения или порчи. При типовом использовании данные, передаваемые по значению,являются копией действительных
данных. Как таковая, вызываемая программа может манипулировать данными по любому пути без изменения данных в вызывающей программе. С другой стороны,
если вызываемая программа принимает адрес данных, по которому программа затем может изменять данные, возможно изменение функционирования вызывающей
программы. Данные, передаваемые по значению, рассматриваются затем как защищенные, а данные, передаваемые по адресу, рассматриваются как подвергаемые
риску.
Удивительно, что переменные, передаваемые в регистр, иногда рассматриваются как передаваемые по адресу, поскольку регистры в аппаратных средствах
являются простыми специализированными адресами. Это различие делается потому, что данные в регистрах подвержены риску, если подпрограмма или функция
изменят данные в регистре и это повлияет на основную программу.
Относительно степени подверженности данных постороннему воздействию отсутствуют жесткие и прочные правила. Такие понятия, как "передача по
значению" и "передача по адресу" могут помочь оценить ситуацию, но действительное решение по использованию типа передачи зависит от того, насколько
ценны данные для вызывающей программы (степень риска), и имела ли доступ вызываемая программа к первоначальным данным. Это в действительности
определяет на сколько большая защита требуется для этих данных.
|
|