Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!lll-lcc!rutgers!mit-eddie!bu-cs!bzs From: bzs@bu-cs.BU.EDU (Barry Shein) Newsgroups: comp.lang.c Subject: Why static forward references Message-ID: <3094@bu-cs.BU.EDU> Date: Wed, 24-Dec-86 00:55:49 EST Article-I.D.: bu-cs.3094 Posted: Wed Dec 24 00:55:49 1986 Date-Received: Wed, 24-Dec-86 04:02:38 EST Organization: Boston U. Comp. Sci. Lines: 32 >extern char *blunge(); /* declare blunge */ >That "extern" just isn't needed. Why not leave it off. Ah ha ha ha! well, sort of...gather round: In the C code for Franz 38.92 there is a definition SPISFP. in bigdiv.c there is (within a routine): int *sp(); Unfortunately, there is also in a .h file (more or less): int *xp; #ifdef SPISFP #define sp() xp #endif Well, the clever children have guessed that this rendered that declaration: int *xp; thus hiding the global value. Took a while to find that one, it usually worked (was used as a ptr to a dummy stack space to fake alloca().) Anyhow...I was just thinking about this 'unnecessary' extern as I wiped the blood from my eyes. (you can consider this a bug report on that Franz if you like.) -Barry Shein, Boston University