Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C Programming > initializer is not a constant error ??

Reply
Thread Tools

initializer is not a constant error ??

 
 
David Green
Guest
Posts: n/a
 
      01-04-2004
Ok, i'm a real c n00b but i needed a piece of code for some work i was
doing. Initially i was running the stuff under linux and using gcc to
compile the c code and it worked fine but now i need to port it to
windows and when i try to compile the same code with the visual studio
command line tool "cl" i get this error:

const.c(92) : error C2099: initializer is not a constant
const.c(97) : error C2099: initializer is not a constant

with the relevant lines of the const.c code being:

ln 92 double INFINITY = 1.0/0.0; /* 99e999; */
ln 97 double NAN = 1.0/0.0 - 1.0/0.0;

Now i have no real idea what this is doing so i was wondering why i
compiles fine uner gcc but not under windows, oh the command i am
using is:

cl /c const.c

Is there a compile option i need to set or will i have to change the
code?

Any help would be great, thanx.

Dave.
 
Reply With Quote
 
 
 
 
Ben Pfaff
Guest
Posts: n/a
 
      01-04-2004
http://www.velocityreviews.com/forums/(E-Mail Removed) (David Green) writes:

> const.c(92) : error C2099: initializer is not a constant
> const.c(97) : error C2099: initializer is not a constant
>
> with the relevant lines of the const.c code being:
>
> ln 92 double INFINITY = 1.0/0.0; /* 99e999; */
> ln 97 double NAN = 1.0/0.0 - 1.0/0.0;


Both of these invoke undefined behavior due to division by zero.
Maybe that's why the compiler regards them as not being constant
expressions. I can't think of another reason right now.

If your implementation has a C99-compliant <math.h>, you can just
#include <math.h> to get ready-made macros for these.
--
"I don't have C&V for that handy, but I've got Dan Pop."
--E. Gibbons
 
Reply With Quote
 
 
 
 
Kevin Goodsell
Guest
Posts: n/a
 
      01-04-2004
Ben Pfaff wrote:
> (E-Mail Removed) (David Green) writes:
>
>
>>const.c(92) : error C2099: initializer is not a constant
>>const.c(97) : error C2099: initializer is not a constant
>>
>>with the relevant lines of the const.c code being:
>>
>>ln 92 double INFINITY = 1.0/0.0; /* 99e999; */
>>ln 97 double NAN = 1.0/0.0 - 1.0/0.0;

>
>
> Both of these invoke undefined behavior due to division by zero.
> Maybe that's why the compiler regards them as not being constant
> expressions. I can't think of another reason right now.
>
> If your implementation has a C99-compliant <math.h>, you can just
> #include <math.h> to get ready-made macros for these.


He did mention that he's using Visual C, which does not (to the best of
my knowledge) support C99 (though it apparently supports it in some
ways, and it's certainly possible that this is one of them).

To the best of my knowledge, outside of C99 there is not a portable way
to generate INF and NAN. But there's probably a system-specific way. I'd
recommend checking the documentation for a function or a predefined
constant.

-Kevin
--
My email address is valid, but changes periodically.
To contact me please use the address from a recent posting.
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
error C2099: initializer is not a constant skyworld C++ 0 05-28-2008 06:30 AM
Handling 'initializer element not constant' error Gowtham C Programming 16 05-09-2008 09:32 AM
Global Data declaration : "error: initializer element is not constant" hankypan1@gmail.com C Programming 3 10-21-2007 08:00 AM
playfunc.c:524: error: initializer element is not constant Levi Campbell C Programming 3 02-11-2006 10:34 PM
Error: "initializer element is not constant" Todd Nathan C Programming 2 07-30-2003 04:29 PM



Advertisments