#PRAGMA
Preprocessor directive
Syntax:
#pragma option [ = value ]
Or
#pragma push ( option [, value ] )
Or
#pragma pop ( option )
Or
#pragma push ( option [, value ] )
Or
#pragma pop ( option )
Parameters:
Possible values for option and related values:
If value is not given, the compiler assumes -1 (TRUE).
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 ... |
constness | 0 | cause the source file in which the pragma appears to disable 'CONST qualifier discarded' warning |
-1 (or any other non-zero value) | cause the source file in which the pragma appears to enable 'CONST qualifier discarded' warning |
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.
constness pragma is added for testing fbc compiler. It will be removed in future at should not be relied upon.
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.
constness pragma is added for testing fbc compiler. It will be removed in future at should not be relied upon.
Examples:
'' 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:
Back to Preprocessor