#pragma
Preprocessor directive
#pragma option [ = value ]
Or
#pragma push ( option [, value ] )
Or
#pragma pop ( option )
Possible values for option and related values:
If value is not given, the compiler assumes -1 (TRUE).
Allows the setting of compiler options inside the source code.
Push saves the current value of the option onto a stack, then assigns the new value (or -1) to it. Pop restores the option to its previous value, and removes it from the stack. This mechanism allows options to be changed for a certain part of source code, regardless of the setting used by the context, which is especially useful inside #include header files.
Syntax
#pragma option [ = value ]
Or
#pragma push ( option [, value ] )
Or
#pragma pop ( option )
Parameters
Possible values for option and related values:
Option | Value | Description |
msbitfields | 0 | Use bitfields compatible with gcc (default) |
-1 (or any other non-zero value) | Use bitfields compatible with those used in Microsoft C compilers | |
once | N/A | cause the source file in which the pragma appears to behave as though it was included with #include once ... |
If value is not given, the compiler assumes -1 (TRUE).
Description
Allows the setting of compiler options inside the source code.
Push saves the current value of the option onto a stack, then assigns the new value (or -1) to it. Pop restores the option to its previous value, and removes it from the stack. This mechanism allows options to be changed for a certain part of source code, regardless of the setting used by the context, which is especially useful inside #include header files.
Example
'' MSVC-compatible bitfields: save the current setting and then enable them
#pragma push(msbitfields)
'' do something that requires MS-compatible bitfields here
'' restore original setting
#pragma pop(msbitfields)
#pragma push(msbitfields)
'' do something that requires MS-compatible bitfields here
'' restore original setting
#pragma pop(msbitfields)
Differences from QB
- New to FreeBASIC
See also