Q: Does #pragma make a program non-portable?
A:
Generally, yes. Using #pragmas may cause the resulting program to behave
in a non-conforming manner. #pragma is used to convey hints to the compiler,
such as the desire to expand a particular function as in-line or suppress
some range checks. An unrecognized #pragma is ignored.
However, C99 attempts to bridge this gap by defining some standard pragmas.
If the preprocessing token STDC appears immediately after #pragma, then the
pragmas have meanings as defined by the Standard. Following are the portable
macros:
#pragma STDC FP_CONTRACT /* Expression evaluation method */
#pragma STDC FENV_ACCESS /* Floating-point environment attributes */
#pragma STDC CX_LIMITED_RANGE /* Complex arithmetic */
               (
geocities.com/vijoeyz/faq)                   (
geocities.com/vijoeyz)