This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Volatile constants?
- To: <J dot A dot K dot Mouw at its dot tudelft dot nl>
- Subject: Re: Volatile constants?
- From: "Christian Häggström" <97nv46 at skola dot kiruna dot se>
- Date: Thu, 30 Mar 2000 09:30:18 +0200
- Cc: <gcc at gcc dot gnu dot org>
/* Okay I forgot the parenthesis, but that was not my point */
The GCC manual says "An Inline Function is As Fast As a Macro",
but when I compile this (as C code), I got error "initializer element is not constant" on
's' initialization.
inline int abs1(int x) {
return x<0 ? -x : x;
}
#define abs2(x) ((x)<0 ? -(x) : (x))
int r = abs1(-7);
int s = abs2(-7);
Is there any option I have to pass?
>I don't get that error message. Here is what my compiler says: ...
Okay you use g++. I use the c compiler.
g++ don t generate an error (not even a warning) for this,
but makes an constructor function, 'static_initialization_and_destruction'-something
That is not what I want and it is NOT as fast as a macro.
>I think you should upgrade to gcc-2.95.2.
I compiled with that version, yes
I ll be glad for any help