Definition
declspec : static | global | shared | inline | extern
Purpose
A declspec provides information about the storage of a particular declaration. The static specifier places the declaration in the next lowest scope. The global specifier places it in the global scope. The shared specifier specifies that the declaration may be shared across several signatures. The inline specifier causes calls to a function to be copied inline. The extern indicates that the actual hard definition or declaration exists in a different program or source file.
Semantics
Each declspec can or cannot be used in various places. With the exception of static, no declspec may be given more than once. Additionally, no combination of statics and globals may move a declaration to a scope lower than global.