Proper use of "extern" ...
Davidsen
davidsen at steinmetz.UUCP
Fri Jun 13 03:41:14 AEST 1986
I just tried the declaration
static int foo();
on SysV, BSD, XENIX/286, and a couple of spare C compilers laying around. They
all loved it. Even lint accepts it. This has to qualify as current practice,
at least.
I do know of two compilers which will not let you say extern and then
change to static later in the program, so this is not universal
practice.
X3J11 talked about a program like:
static foo();
part1() {
extern foo();
foo(20);
}
part2() {
foo(20);
}
static foo(n)
int n;
{
mumble(n+1);
}
in terms of which 'foo' is called in part1. Since declarations inside a
procedure mask global declarations, if 'foo' inside part1 another foo,
which is extern?
I left X3J11 after 2 years and I can't find anthing in the latest
version of the standard I have (I keep getting the March 85 version
from CBEMA) which would clarify the issue.
--
-bill davidsen
ihnp4!seismo!rochester!steinmetz!--\
\
unirot ------------->---> crdos1!davidsen
/
sixhub ---------------------/ (davidsen at ge-crd.ARPA)
"Stupidity, like virtue, is its own reward"
More information about the Comp.lang.c
mailing list