Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

extern "C" and global variables



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".

Regards,
John Weeks

WaveMetrics, Inc.
Phone (503) 620-3001
Fax   (503) 620-6754
email   email@hidden

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/xcode-users/email@hidden

This email sent to email@hidden



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.