__declspec(noinline) attribute suppresses the inlining of a function at the call points of the function.
__declspec(noinline) can also be applied to
constant data, to prevent the compiler from using the value for optimization purposes,
without affecting its placement in the object. This is a feature that can be used for
patchable constants, that is, data that is later patched to a different value. It is an
error to try to use such constants in a context where a constant value is required. For
example, an array dimension.
__declspecattribute has the function attribute equivalent
/* Prevent y being used for optimization */ __declspec(noinline) const int y = 5; /* Suppress inlining of foo() wherever foo() is called */ __declspec(noinline) int foo(void);