title
Microsoft-Specific Modifiers | Microsoft Docs
ms.custom
ms.date
11/04/2016
ms.reviewer
ms.suite
ms.technology
ms.tgt_pltfrm
ms.topic
language-reference
dev_langs
ms.assetid
22c7178c-f854-47fa-9de6-07d23fda58e1
caps.latest.revision
10
author
mikeblome
ms.author
mblome
manager
ghogen
translation.priority.ht
cs-cz
de-de
es-es
fr-fr
it-it
ja-jp
ko-kr
pl-pl
pt-br
ru-ru
tr-tr
zh-cn
zh-tw
Microsoft-Specific Modifiers
This section describes Microsoft-specific extensions to C++ in the following areas:
Many of the Microsoft-specific keywords can be used to modify declarators to form derived types. For more information about declarators, see Declarators .
Microsoft-Specific Keywords
Keyword
Meaning
Used to Form Derived Types?
__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 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
__restrict
Similar to __declspec(restrict ), but for use on variables.
No
__stdcall
The name that follows specifies a function that observes the standard calling convention.
Yes
__w64
Marks a data type as being larger on a 64-bit compiler.
No
__unaligned
Specifies that a pointer to a type or other data is not aligned..
No
__vectorcall
The name that follows declares a function that uses registers, including SSE registers, when available, instead of the stack for argument passing.
Yes
C++ Language Reference