Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Const?
If I declare "Const foo as Integer = 123", does that allocate storage?
Or does that create a compile-time constant that replaces "foo" wherever it is used in executable statements? If the latter, is "Const foo as Integer = 123*456" and "x = foo" more efficient than "x = 123*456"? In particular, does the compiler treat "x = foo" as "x = 56088"? |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Const?
The answer to the first question is yes.
"Joe User" <joeu2004 wrote in message ... If I declare "Const foo as Integer = 123", does that allocate storage? Or does that create a compile-time constant that replaces "foo" wherever it is used in executable statements? If the latter, is "Const foo as Integer = 123*456" and "x = foo" more efficient than "x = 123*456"? In particular, does the compiler treat "x = foo" as "x = 56088"? |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Const?
I believe that the compiler evaluates any constants and replaces them with their values before any code execution takes place. This is why you can assign to constants values that can be evaluated arithmetically with actual constants (Const ABC = 1234 * 10) or other, previously declared constants (Const ABC = DEF * 10, where DEF is a previously declared constant). As far as efficiency at run time, a simple constant makes no difference at all and an arithmetic const is only marginally (microseconds) better than having the arithmetic in the actual run time code. Cordially, Chip Pearson Microsoft MVP 1998 - 2010 Pearson Software Consulting, LLC www.cpearson.com [email on web site] On Sat, 12 Dec 2009 16:58:08 -0800, "Joe User" <joeu2004 wrote: If I declare "Const foo as Integer = 123", does that allocate storage? Or does that create a compile-time constant that replaces "foo" wherever it is used in executable statements? If the latter, is "Const foo as Integer = 123*456" and "x = foo" more efficient than "x = 123*456"? In particular, does the compiler treat "x = foo" as "x = 56088"? |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
Const?
"Chip Pearson" wrote:
I believe that the compiler evaluates any constants and replaces them with their values before any code execution takes place. This is why you can assign to constants values that can be evaluated arithmetically with [...] previously declared constants (Const ABC = DEF * 10 Good point! Shoulda thought of that myself. Thanks. ----- original message ----- "Chip Pearson" wrote in message ... I believe that the compiler evaluates any constants and replaces them with their values before any code execution takes place. This is why you can assign to constants values that can be evaluated arithmetically with actual constants (Const ABC = 1234 * 10) or other, previously declared constants (Const ABC = DEF * 10, where DEF is a previously declared constant). As far as efficiency at run time, a simple constant makes no difference at all and an arithmetic const is only marginally (microseconds) better than having the arithmetic in the actual run time code. Cordially, Chip Pearson Microsoft MVP 1998 - 2010 Pearson Software Consulting, LLC www.cpearson.com [email on web site] On Sat, 12 Dec 2009 16:58:08 -0800, "Joe User" <joeu2004 wrote: If I declare "Const foo as Integer = 123", does that allocate storage? Or does that create a compile-time constant that replaces "foo" wherever it is used in executable statements? If the latter, is "Const foo as Integer = 123*456" and "x = foo" more efficient than "x = 123*456"? In particular, does the compiler treat "x = foo" as "x = 56088"? |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Const and VBA values | Excel Programming | |||
Public Const & RowSource | Excel Programming | |||
Const Array | Excel Programming | |||
Not recognizing a Const | Excel Programming | |||
crash changing const to public const | Excel Programming |