Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!zaphod.mps.ohio-state.edu!think!bbn!bbn.com!ghewes From: ghewes@bbn.com (Gerald Hewes) Newsgroups: comp.sys.amiga.tech Subject: Re: Blinking static members Message-ID: <50733@bbn.COM> Date: 10 Jan 90 23:15:42 GMT References: <1165@zip.eecs.umich.edu> Sender: news@bbn.COM Reply-To: ghewes@spca.bbn.com (Gerald Hewes) Organization: Bolt Beranek and Newman Inc., Cambridge MA Lines: 22 I may be late in the discussion, but the problem with statics between UN*X and AMIGA arises from the fact that blink does not allow multiple declarations of external symbols. When you include header files with such definition you run into trouble. To avoid this, CC and lc both have flags to turn any declaration into a harmless external definition. UN*X on the other hand allows multiple declarations. It will allocate memory to fit the largest declaration. Of course no type checking is done. This means that the two following files will link fine with no warning whatsoever: file1.c char container; file2.c double container[100]; The linker will allocate enough room for the 100 double's. As to which linker philosophy (the Un*x version hides a lot of bugs and conflicts) is better is a subjective answer.