[vox-tech] C question: global vs local const

Peter Jay Salzman vox-tech@lists.lugod.org
Fri, 18 Jan 2002 01:42:11 -0800


begin Mark K. Kim <markslist@cbreak.org> 
> On Thu, 17 Jan 2002, Peter Jay Salzman wrote:
> 
> > begin Mark K. Kim <markslist@cbreak.org>
> > > You're initializing K with a variable.  Because globals are calculated at
> > > compile time,
> 
> Since Jeff will sooner or later jump in to correct me, I'll correct myself
> before that happens:
> 
> I didn't meant to say that globals are calculated at compile time -- they
> can certainly be modified during runtime.  What I meant was that initial
> values of globals have to be calculated at compiletime -- due to the way
> they are stored in memory.
 
does this apply to static variables too?  i have a situation where a
function is called many times over:

void function( ..., long double dr)
{
	long double variable = expensive_calculation * dr;
	...
}

i'd like to declare variable as static, since both expensive_calculation
and dr remain constant through the entire program.  i can't declare dr
as being global because it depends on other parameters that need to be
calculated at run time (but otherwise don't change).

when variable is declared static, it generates the same error message --
a variable initializer.  so i assume local static variables are also
first computed at compile time?

pete

-- 
The mathematics [of physics] has become ever more abstract, rather than more
complicated.  The mind of God appears to be abstract but not complicated.
He also appears to like group theory.  --  Tony Zee's `Fearful Symmetry'

PGP Fingerprint: B9F1 6CF3 47C4 7CD8 D33E  70A9 A3B9 1945 67EA 951D