Antoninus Twink wrote, On 05/05/08 11:12:
> On 5 May 2008 at 9:53, Bartc wrote:
>> I noticed that in C, functions in any module are automatically
ex****ted. So
>> that it's not possible to use the same function name in two modules
(ie.
>> source files).
>>
>> Now that I know that, I get work around it; but is there a way to avoid
the
>> problem (short of lots of renaming)?
>
> Check out your compiler's options. For example, gcc has quite a
> sophisticated visibility model: in the simplest case, you can use
> __attribute ((visibility("hidden"))) as a qualifier, or compile with
> -fvisibility=hidden.
So what is wrong with static? Why suggest a non-standard extension when
a feature the language has had in all implementations for years is
sufficient.
>> More seriously, variables declared at file scope also seem to be
>> automatically ex****ted. But in this case, the compiler/linker doesn't
warn
>> me that the same name is being used in two or more modules. (Is this
what
>> the fuss is about with 'global variables'?)
>>
>> Is there any way I can fix this? (Like some keyword that will render a
>> variable local to a module.)
>
> static.
After all, you know about it.
--
Flash Gordon


|