#pragma
 
Preprocessor directive

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 ...
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.

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)


Differences from QB

  • New to FreeBASIC

See also