Microsoft Specific
The __inline keyword tells the compiler to substitute the code within the function definition for every instance of a function call. However, substitution occurs only at the compiler's discretion. For example, the compiler does not inline a function if its address is taken or if it is too large to inline.
For a function to be considered as a candidate for inlining, it must use the new-style function definition.
Use this form to specify an inline function:
__inline typeopt function-definition;
The use of inline functions generates faster code and can sometimes generate smaller code than the equivalent function call generates for the following reasons:
- It saves the time required to execute function calls. 
- Small inline functions, perhaps three lines or less, create less code than the equivalent function call because the compiler doesn't generate code to handle arguments and a return value. 
- Functions generated inline are subject to code optimizations not available to normal functions because the compiler does not perform interprocedural optimizations. 
Functions using __inline should not be confused with inline assembler code. See Inline Assembler for more information.
END Microsoft Specific