C.8 Microsoft Extensions

asm-statement:
__asm assembly-instruction ;opt
__asm { assembly-instruction-list } ;opt

assembly-instruction-list:
assembly-instruction
;opt
assembly-instruction
; assembly-instruction-list ;opt

Note:

The definition of assembly-instruction and more information about inline assembly can be found in the Programming Techniques manual.

amodel:
__near
__far

rmodel:
amodel
__huge

nmodel:
rmodel
__based ( expression )

ambient-model:
amb-export
amb-model

amb-model:
amodel amb-model
opt
__novtordisp amb-modelopt (reserved for future implementations)amb-export:
__export amb-exportopt
__novtordisp amb-exportopt (reserved for future implementations)

ms-modifier-list:
ms-modifier ms-modifier-list
opt

Note:

Many combinations of these modifiers, while syntactically legal, are invalid because of the context in which they appear. For example, __fastcall is not permitted when declaring data.

ms-modifier:
__cdecl
__fortran
__pascal
__fastcall
__interrupt
__export
__saveregs
__loadds
__stdcall
(reserved for future implementations)
__syscall (reserved for future implementations)
__oldcall (reserved for future implementations)
__novtordisp (reserved for future implementations)
rmodel
based-modifier

based-modifier:
__based ( based-type )

based-type:
void
__self
__segname (
string-literal )
( __segment )
expression
__segment (
expression )
name