mirror of
https://github.com/QB64Official/qb64.git
synced 2024-09-18 20:55:09 +00:00
40 lines
No EOL
1.8 KiB
Text
40 lines
No EOL
1.8 KiB
Text
'''$LET''' is precompiler command, which is now usable by modern day [[cavemen]] to help include and exclude which sections of code compiles in their program based on OS/bit-size or other predefined conditions.
|
|
|
|
|
|
{{PageSyntax}}
|
|
:: $LET variable = expression
|
|
|
|
|
|
* $LET a = 12 sets a precompiler variable "a" to the value of 12. This variable is ONLY valid for the precompiler itself and does NOTHING to affect the values of any variable/constant which might also be called "a" in the program.
|
|
* Variable names can contain numbers, letters, and periods -- in any order! $LET 3.2 = TRUE is a perfectly valid variable and expression.
|
|
* Expressions can contain one set of leading and/or trailing quotes; and any number of numbers, letters, and periods, in any order. $LET 3.2 = "TRUE" is also perfectly, but $LET 3.2 = ""TRUE"" will error. (See the double quotes?)
|
|
|
|
''Example 1:''
|
|
{{CodeStart}} '' ''
|
|
{{Cl|$LET}} ScreenMode = 32
|
|
{{Cl|$IF}} ScreenMode = 0 THEN
|
|
{{Cl|CONST}} Red = 4
|
|
{{Cl|$ELSEIF}} ScreenMode = 32 THEN
|
|
{{Cl|CONST}} Red = _RGB32(255,0,0)
|
|
{{Cl|$END IF}}
|
|
|
|
{{Cl|COLOR}} Red
|
|
{{Cl|PRINT}} "Hello World"
|
|
{{CodeEnd}}
|
|
|
|
Explaination:
|
|
If you look at the code above, you'll see that we have the same CONST defined inside the program. Normally, we get an error if we try to define a CONST more than once, but the $IF condition here is CHOOSING which CONST we want inside our program.
|
|
|
|
AS long as Screenmode is 0, the program will exclude the code where CONST Red is defined as color 4. If Screenmode is 32, CONST Red will be defined as _RGB32(255, 0, 0).
|
|
|
|
The $LET and $IF statements let us control the code that actually gets compiled, while excluding the other blocks completely.
|
|
|
|
|
|
''See also:''
|
|
* [[Cavemen]]
|
|
* [[$IF]]
|
|
* [[$ELSE]]
|
|
* [[$ELSEIF]]
|
|
* [[$END IF]]
|
|
|
|
{{PageNavigation}} |