extern                   External Data Storage Class
 
    When used with a variable, the extern class specifies that the object
    is defined elsewhere in the program as an external, possibly in the
    same source code file.  The extern keyword may be used both
    internally and externally to a function.  An external variable has
    permanent life and can be accessed from any file in which it was
    declared (using extern).  If the extern declaration is specified
    inside a function, the object's scope is limited to the block in
    which it is declared, and all subordinate blocks (if any).  The scope
    of an extern object declared outside a function is from the point of
    declaration through the end of the source code file.  The form of an
    extern declaration for a variable is:
 
            extern [type] identifier [[, identifier] ... ] ;
 
    When used with a function definition, the extern class causes that
    function's name to be made global; that is, it can be called from any
    function in the program.  This is the opposite of `static'.  The form
    when used with a function definition is:
 
            [extern] [type] function-name ([argument-list])
 
    The extern class can also be used with a function declaration,
    indicating that function is defined elsewhere, possibly in the same
    source code file.  The form when used with a function declaration is:
 
            [extern] [type] function-name ([argument-list]) ;
 
      Notes:    Variables with the extern class may not have explicit
                initializers, since they refer to variables that are
                defined elsewhere.
 
                Since by default all functions have class extern, the
                keyword is rarely used either in function definitions or
                declarations.
 
                If a function is called before it has been declared, it
                is assumed to have class extern and type int.
 
                If the type of an extern variable is omitted, int is
                assumed.
 
  -------------------------------- Example ---------------------------------
 
           extern int max, total;
           extern struct date today;
           extern int test();
 
           extern int testchar()
           {
                extern int i;
                extern double average();
                ...
           }

Seealso:



This page last updated on Fri Nov 30 10:48:32 MSK 2001
Copyright © 1992-2001, Vitaly Filatov, Moscow, Russia
Webmaster