|The call to
printf will be emitted via msil. The
printf method itself will execute as native code (there will be a managed to unmanaged jump during execution).
Now instead of
printf, assume you were calling your own global function
Foo. Now if you did not put
Foo's definition in a
#pragma unmanaged block,
Foo itself will be compiled as msil. That's a scenario where you'd actually want to use
#pragma unmanaged, particularly if you think
Foo is a time-intensive function.