extern const (Was: Re: [gcc-in-cxx]: patches from multi-target-4_4-branch)
Ian Lance Taylor
iant@google.com
Mon May 25 11:13:00 GMT 2009
Joern Rennecke <amylaar@spamcop.net> writes:
> Quoting Ian Lance Taylor <iant@google.com>:
>> Joern Rennecke <amylaar@spamcop.net> writes:
>>> * config/sh/sh.c (sh_attribute_table): Use extern in forward
>>> declaration.
>>> Common issue with declaring/defining const variables in C++.
>>
>> I've been doing this as
>>
>> #ifdef __cplusplus
>> extern
>> #endif
>
> These #ifdefs sprinkled over the code are awkward. Could we use a #define
> for this? E.g. put in system.h
> #ifdef __cplusplus
> #define CONST_VAR_DECL extern const
> #else
> #define CONST_VAR_DECL const
> #endif
Yes, that is certainly the way to go if it is in fact not safe to use
"extern const int i = 1;" for all C compilers. I hadn't planned to deal
with this issue yet, but since you bring it up, we should decide whether
that construct is safe, or whether we need the macro.
Ian
More information about the Gcc
mailing list