aboutsummaryrefslogtreecommitdiffstats
path: root/source/arduino/const.rst
diff options
context:
space:
mode:
authorMarti Bolivar <mbolivar@mit.edu>2010-10-20 06:46:52 -0400
committerMarti Bolivar <mbolivar@mit.edu>2010-10-20 06:46:52 -0400
commit85c1c72db022bba891868afd3375e39dbe245701 (patch)
tree9d86a3db825667362a8c89a98a205586015aec94 /source/arduino/const.rst
parentabcfcc62cc62dfc088d30d5a6b6c36d6c89f7b07 (diff)
downloadlibrambutan-85c1c72db022bba891868afd3375e39dbe245701.tar.gz
librambutan-85c1c72db022bba891868afd3375e39dbe245701.zip
initial check-in of arduino docs in RST format (converted using wget+pandoc)
Diffstat (limited to 'source/arduino/const.rst')
-rw-r--r--source/arduino/const.rst55
1 files changed, 55 insertions, 0 deletions
diff --git a/source/arduino/const.rst b/source/arduino/const.rst
new file mode 100644
index 0000000..295b817
--- /dev/null
+++ b/source/arduino/const.rst
@@ -0,0 +1,55 @@
+.. _arduino-const:
+
+const keyword
+=============
+
+The **const** keyword stands for constant. It is a variable
+*qualifier* that modifies the behavior of the variable, making a
+variable "*read-only*". This means that the variable can be used
+just as any other variable of its type, but its value cannot be
+changed. You will get a compiler error if you try to assign a value
+to a **const** variable.
+
+
+
+Constants defined with the *const* keyword obey the rules of
+*`variable scoping <http://arduino.cc/en/Reference/Scope>`_* that
+govern other variables. This, and the pitfalls of using*#define*,
+makes the *const* keyword a superior method for defining constants
+and is preferred over using
+*`#define <http://arduino.cc/en/Reference/Define>`_*.
+
+
+
+Example
+-------
+
+::
+
+ const float pi = 3.14;
+ float x;
+
+ // ....
+
+ x = pi * 2; // it's fine to use const's in math
+
+ pi = 7; // illegal - you can't write to (modify) a constant
+
+
+**#define** or **const**
+------------------------
+
+You can use either **const** or **#define** for creating numeric or
+string constants. For
+`arrays <http://arduino.cc/en/Reference/Array>`_, you will need to
+use **const**. In general *const* is preferred over *#define* for
+defining constants.
+
+
+
+See also:
+
+
+- `#define <http://arduino.cc/en/Reference/Define>`_
+- `volatile <http://arduino.cc/en/Reference/Volatile>`_
+