aboutsummaryrefslogtreecommitdiffstats
path: root/source/arduino/scope.rst
diff options
context:
space:
mode:
Diffstat (limited to 'source/arduino/scope.rst')
-rw-r--r--source/arduino/scope.rst56
1 files changed, 56 insertions, 0 deletions
diff --git a/source/arduino/scope.rst b/source/arduino/scope.rst
new file mode 100644
index 0000000..bb56246
--- /dev/null
+++ b/source/arduino/scope.rst
@@ -0,0 +1,56 @@
+.. _arduino-scope:
+
+Variable Scope
+==============
+
+Variables in the C programming language, which Arduino uses, have a
+property called *scope*. This is in contrast to languages such as
+BASIC where every variable is a *global* variable.
+
+
+
+A global variable is one that can be *seen* by every function in a
+program. Local variables are only visible to the function in which
+they are declared. In the Arduino environment, any variable
+declared outside of a function (e.g. setup(), loop(), etc. ), is a
+global variable.
+
+
+
+When programs start to get larger and more complex, local variables
+are a useful way to insure that only one function has access to its
+own variables. This prevents programming errors when one function
+inadvertently modifies variables used by another function.
+
+
+
+It is also sometimes handy to declare and initialize a variable
+inside a *for* loop. This creates a variable that can only be
+accessed from inside the for-loop brackets.
+
+
+
+Example:
+--------
+
+::
+
+ int gPWMval; // any function will see this variable
+
+ void setup()
+ {
+ // ...
+ }
+
+ void loop()
+ {
+ int i; // "i" is only "visible" inside of "loop"
+ float f; // "f" is only "visible" inside of "loop"
+ // ...
+
+ for (int j = 0; j <100; j++){
+ // variable j can only be accessed inside the for-loop brackets
+ }
+
+ }
+