Hi, folks.
I have a C++ source file that defines a global variable:
extern "C" unsigned char gSuppressLiveUpdate = 0;
so that it can be used from a C source file. In the C file, of course, I have
extern unsigned char gSuppressLiveUpdate;
gcc complains (OK, it's just a warning):
warning: 'gSuppressLiveUpdate' initialized and declared 'extern'
I guess I see the point of the warning; it's not really extern because it
is being defined right there. But then, how do I prevent name mangling so
that it can be used in the C file, without using the "extern" keyword?
At the moment I have suppressed the warning by defining and initializing it
in the C file and using just extern "C" unsigned char gSuppressLiveUpdate;
in the C++ file. But that's not satisfying; I want to be able to put the
definition where I want it.
CodeWarrior and VC++.net are both OK with this, but I realize that gcc is
actually more standards-compliant that they are. I tried searching for an
answer with Google, but all the discussions are about functions declared
extern "C".