Path: utzoo!attcan!uunet!tut.cis.ohio-state.edu!mailrus!ames!haven!adm!smoke!gwyn From: gwyn@smoke.BRL.MIL (Doug Gwyn) Newsgroups: comp.lang.c Subject: Re: question about scope & linkage Keywords: scope, linkage Message-ID: <10701@smoke.BRL.MIL> Date: 10 Aug 89 20:52:05 GMT References: <57257@tut.cis.ohio-state.edu> Reply-To: gwyn@brl.arpa (Doug Gwyn) Distribution: na Organization: Ballistic Research Lab (BRL), APG, MD. Lines: 12 In article <57257@tut.cis.ohio-state.edu> Christopher Lottwrites: >(what is a 'translation unit' ??) A source file and the other files it #includes, directly or indirectly. >... However, the linker does not complain about a multiply-defined symbol, ... Yes, that's because your C implementation uses the "COMMON" model for external object linkage, instead of the "DEF/REF" model described in K&R (1st Edition). Most UNIX systems are that way. For portability, you should fix the source so that there is only one non-"extern" declaration of such an object among all the translation units that produce the object modules that get linked together.