On 18 February 2013 01:56, Michael Hennebry <hennebry@xxxxxxxxxxxxxxxxxxxxx>wrote: > fred.c: > static void sfunc(int *p) { *p=1; } > static int x; > > void fred(void) > { > ... sfunc(&x); ... > } > > > greg.c: > static void sfunc(int *p) { *p=2; } > static int x; > > void greg(void) > { > ... sfunc(&x); ... > } > > Once the object files from fred.c and greg.c are linked, > how does ELF distinguish the sfunc's and the x's? > I've been trying to RTFM, but it hasn't helped? > -- > Michael hennebry@xxxxxxxxxxxxxxxxxxxxx > "On Monday, I'm gonna have to tell my kindergarten class, > whom I teach not to run with scissors, > that my fiance ran me through with a broadsword." -- Lily > _______________________________________________ > CentOS mailing list > CentOS@xxxxxxxxxx > http://lists.centos.org/mailman/listinfo/centos > The variables and functions belong to a block/file, this is their scope. Both functions/variables you mention are actually unique within their respective file scope. Also have a look at name mangling. http://en.wikipedia.org/wiki/Name_mangling. Gcc help @ http://gcc.gnu.org/ml/gcc-help/ IAll the best. Paul -- "It is a good day to die, Duras. And the day is not yet over"* **Lieutenant Worf* _______________________________________________ CentOS mailing list CentOS@xxxxxxxxxx http://lists.centos.org/mailman/listinfo/centos