Navigation bar
  Start Previous page
 128 of 172 
Next page End  

ZBasic Language Reference
121
ZX Microcontroller Family
compiler with a different IDE that expects to see error message is a slightly different format for its “jump to
the next error” function.
7.3.1 Controlling Warnings
The types of warnings that the compiler will issue may be controlled from the command line using the --
warn option.  Most of the warning types are enabled by default.  It is desirable in some cases to allow the
compiler to generate a certain type of warning message except for specific code sequences.  This can be
accomplished using the #pragma warning compiler directive in your program, the syntax of which is
shown below.
#pragma warning( <warning id> : <disposition> )
The <warning id> element is either a numeric value (included as part of the warning message) or one
of the mnemonic warning identifiers used with the –warn option.  The <disposition> element must be
one of the keywords On, Off or Default, the effect of which is to enable the warning, disable the
warning or set it to the default state.
An example of the use of of the warning directive to disable a warning for useless code is shown below.
Dim b as Byte
Dim i as Integer
Sub Main()
   b = 3
#pragma warning(7 : Off)
   If (b > 5) Then
       i = 100
   ElseIf (b <= 5) Then
       i = 10
   End If
#pragma warning(7 : On)
   b = 25
End Sub
Because of the immediately preceding assignment, the compiler can deduce the Boolean value of the
conditions in both the If and ElseIf statements and will issue a “useless-code” warning indicating that that
those conditions are always false.  The first warning directive disables that warning and the second one
unconditionally enables it.  Often, it is undesirable to unconditionally enable a warning after disabling it as
was done in this example.  To avoid enabling a warning that was not previously enabled, two variations of
the warning directive are provided to save the current set of enabled warnings (push) and restore them
afterward (pop) instead of unconditionally re-enabling a warning.  The syntax for the push and pop
warning directives is illustrated in the modified example below.
Dim b as Byte
Dim i as Integer
Sub Main()
   b = 3
#pragma warning(push)
#pragma warning(7 : Off)
   If (b > 5) Then
       i = 100
   ElseIf (b <= 5) Then
       i = 10
   End If
#pragma warning(pop)
   b = 25
End Sub
Previous page Top Next page