>What is the simplest explanation as to why these are needed? Why not just set regular variable values? So what if they are constant and don't change?
Jay,
#DEFINE is a compiler dircetive. It is NOT a variable. They are evaluated at compile time and are used as a sort of search and replace on the source code of the file that has the #DEFINE in it to replace all occurances of the defined string with the defined value., so ...
#DEFINE MyString 123
lnVar = MyString
ends up compliine as ...
lnVar = 123
These replacements occur at COMPILE time and not at run time. Using them for constants reduces the number of memvars you are carrying around in your runtime code.