It can mean the definition is extern al to the file, or that the definition occurs later in the file. Since there is no function body, the compiler must treat it as a function declaration rather than a function definition. The extern keyword is thus superfluous and optional for function declarations. In the function declarations, the argument identifiers are optional. In the definitions, they are required.
Most libraries contain significant numbers of functions and variables.
The programmer who creates the library provides the header file. To declare the functions and external variables in the library, the user simply includes the header file. This tells the preprocessor to open the named header file and insert its contents where the include statement appears. What this typically means is to search the current directory for the file. If the file is not found, then the include directive is reprocessed as if it had angle brackets instead of quotes.