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.
