Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| Message-ID | <4E0CECB1.3D9D@mindspring.com> (permalink) |
|---|---|
| Date | 2011-06-30 17:37 -0400 |
| From | pete <pfiland@mindspring.com> |
| Organization | PF |
| Newsgroups | comp.lang.c |
| Subject | Re: Use of EXTERN |
| References | <iuimrb$9c$1@speranza.aioe.org> |
Tom Young wrote: > > Hi all. I've read through all the > K&R2 chapters and I'm now reading the appendices. > Specifically, I'm reading section A11 - Scope & Linkage p227. > I have a question about the "extern" property. > > Section A11.2 Linkage p228 says: > > "All declarations for the same object or function identifier > with external linkage refer to the same thing, > and the object or function is shared by > the entire program." > > and > > "... the first external declaration for an identifier > gives the identifier > internal linkage if the static specifier is used, > external linkage otherwise." > > My questions are, > is there any point to declaration an external object "extern"? > Does it have any effect(s)? > I'm almost positive I've seen code > with external declarations that included the keyword "extern", > but given > the quoted statements above, that seems redundant. Am I missing > something? I have a program called "e_driver". It consists of six files: http://www.mindspring.com/~pfilandr/C/e_driver/e_driver.c http://www.mindspring.com/~pfilandr/C/e_driver/e_driver.h http://www.mindspring.com/~pfilandr/C/e_driver/e_sort.c http://www.mindspring.com/~pfilandr/C/e_driver/e_sort.h http://www.mindspring.com/~pfilandr/C/e_driver/e_distributions.c http://www.mindspring.com/~pfilandr/C/e_driver/e_distributions.h e_driver.c has this external declaration: long unsigned cmp_count; e_driver.h has this external declaration: extern long unsigned cmp_count; e_driver.c and e_sort.h and e_distributions.h all have this line: #include "e_driver.h" e_sort.c has this line: #include "e_sort.h and e_distributions.c has this line: #include "e_distributions.h" All three of the *.c files in the e_driver program use the same external object (cmp_count), which is declared in e_driver.c -- pete
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Use of EXTERN Tom Young <tyoung37@gmail.invalid> - 2011-06-30 20:38 +0000 Re: Use of EXTERN pete <pfiland@mindspring.com> - 2011-06-30 17:37 -0400 Re: Use of EXTERN James Kuyper <jameskuyper@verizon.net> - 2011-07-01 07:11 -0400
csiph-web