[vox-tech] C question: global vs local const
Peter Jay Salzman
vox-tech@lists.lugod.org
Thu, 17 Jan 2002 16:51:44 -0800
begin Ken Bloom <kabloom@ucdavis.edu>
> > ---- ORIGINAL MESSAGE ----
> > Date: Thu, 17 Jan 2002 15:04:38 -0800
> > To: vox-tech@lists.lugod.org
> > From: Peter Jay Salzman <p@dirac.org>
> > Subject: [vox-tech] C question: global vs local const
> > Reply-To: vox-tech@lists.lugod.org
> >
> > 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?
>
> do you have a more thorough piece of demonstration code for what
> you're trying to do. Both of these pieces of code, as written, should
> initialize K and ratio to the value of 2.0, and should both do so
> without compiler warnings or compiler errors.
i think mark resolved this. :)
> (I may be wrong,
> assigning 2.0L to a double in any circumstance may cause warnings to
> be emitted. Try just assigning 2.0)
in my real code, it was a long double. i forgot to delete the "L"'s.
good eye. :)
it looks like you're using C++? i'm not too hip onto that language,
but i've heard people say that the const qualifier works differently
between the two languages.
pete