Many of the Microsoft-specific keywords can be used to modify declarators to form derived types. (For more information about declarators, see Chapter 7, Declarators).
Table B.1 Microsoft-Specific Keywords
| Keyword | Meaning | Used to Form Derived Types? |
| __asm | Insert the following assembly-language code. | No |
| __based | The name that follows declares a 32-bit offset to the 32-bit base contained in the declaration. | Yes |
| __cdecl | The name that follows uses the C naming and calling conventions. | Yes |
| __declspec | The name that follows (thread, naked, dllimport, or dllexport) specifies a Microsoft-specific storage-class attribute. | No |
| __fastcall | The name that follows declares a function that uses registers, when available, instead of the stack for argument passing. | Yes |
| __stdcall | The name that follows specifies a function that observes the standard calling convention. | Yes |
The following sections discuss the syntactic usage and semantic meaning of the Microsoft-specific modifiers.