I was wondering if there is any difference if skip extern
storage class specifier while declaring a function? Specifically, is there any difference between following two?
void foo ();
and
extern void foo();
I was wondering if there is any difference if skip extern
storage class specifier while declaring a function? Specifically, is there any difference between following two?
void foo ();
and
extern void foo();
is there any difference between following two?
Basically, no.
Each function declaration, is extern
by default, (i.e., in absence of any specific storage-class specifier).
Quoting C11
, chapter ยง6.2.2, Linkages of identifiers
If the declaration of an identifier for a function has no storage-class specifier, its linkage is determined exactly as if it were declared with the storage-class specifier
extern
.