[vox-tech] C question: global vs local const
Mark K. Kim
vox-tech@lists.lugod.org
Thu, 17 Jan 2002 15:54:05 -0800 (PST)
You're initializing K with a variable. Because globals are calculated at
compile time, you cannot have variables in the initialization of globals
(since a variable's value is not determined until runtime). And yes,
const variables are still variables, and const variables are overwritable
under certain architectures by indirectly dereferencing it (but not on x86
Linux).
-Mark
On Thu, 17 Jan 2002, Peter Jay Salzman wrote:
> when ratio and K are defined externally, gcc complains about a
> non-constant initializer:
>
> const double ratio = 2.0L;
> const double K = ratio;
>
> int main(void)
> {
> return 0;
> }
>
> however, when defined as local variables, there's no problem.
>
> int main(void)
> {
> const double ratio = 2.0L;
> const double K = ratio;
>
> return 0;
> }
>
> why isn't const being honored for the global variable version?
>
> pete
> _______________________________________________
> vox-tech mailing list
> vox-tech@lists.lugod.org
> http://lists.lugod.org/mailman/listinfo/vox-tech
>
--
Mark K. Kim
http://www.cbreak.org/mark/
PGP key available upon request.