aboutsummaryrefslogtreecommitdiffstats
path: root/docs/source/arduino/scope.rst
blob: bb5624649faa1057cb878031c167457a7aeb52e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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
      }
    
    }