Локальные и глобальные данные

Данные, которые используются в вычислениях с применением функций, бывают двух видов:

локальные,

глобальные.

Локальныеэто такие данные, которые описываются и используются в пределах одной функции. Использование этих данных за пределами такой функции невозможно, они попросту «не признаются» другими функциями. Для этих функций они неизвестны. Поскольку локальные данные не выходят за пределы «своей» функции, то допускается использование одинаковых имен локальных данных в различных функциях. Это не приводит к неразберихе, так как они изолированы друг от друга, не пересекаются и «не знают» о существовании друг друга.

Глобальныеэто данные, которые описываются за пределами всех функций, сразу после директив. Областью действия глобальных данных является любая функция. Это означает, что глобальные данные могут участвовать в каких–либо операциях любой функции, то есть они могут беспрепятственно «входить» в любую функцию. Именно эта особенность глобальных данных может привести к тому, что глобальные данные, «войдя» в какую–либо функцию, могут «встретиться» с локальными данными этой функции, имеющими такие же имена. То есть произойдет «пересечение» локальных и глобальных данных. Компилятор на это никак не отреагирует. Просто глобальные данные будут восприниматься как локальные, и в этом качестве они будут использоваться в операциях функции. В некоторых случаях это может привести к ошибкам вычислений. Поэтому при написании программ следует особенно тщательно следить за недопущением таких случаев.