Constants and Variable Initialization

Top  Previous  Next

Constants in Tibbo BASIC

Numerical constants can be in decimal, binary (&b), or hex (&h) notation.

ASCII codes can be used in constants as well. To achieve this, enclose a character in ``. For 16- and 32-bit variables you can enclose up to 2 or 4 characters between ``.

String constants can include escape sequences (\x00) to define unprintable characters. This functionality is borrowed from C. There are also several predefined escape sequences — see below.

BASIC has a dedicated const statement to define names for constants. The #define preprocessor directive can also be used.

It is possible to use expressions in constants.

No mechanism is provided to "gang-initialize" array members.

 

Tibbo BASIC:

dim x as char=-100/5 'decimal notation + expression
dim i as word=&b1010111100000101 'binary notation
dim dw as dword=&hFFFFFFFF 'hex notation
dw=`0123` 'The result will be &h30313233
dim s as string="This is a test\x0A\x0D" 'string constant with LF/CR
Const TIMEOUT_PERIOD=5 'using the const statement
Const DOUBLE_PERIOD=TIMEOUT_PERIOD*2 'expression using another constant
Const DEVICE_NAME="Monitor 1"
x=TIMEOUT_PERIOD
s=DEVICE_NAME
#define TIME_GAP 10
dim arr(5) as word
arr(0)=10 'array members must be initialized one-by-one
arr(1)=25

 

Constants in Tibbo C

Numerical constants can be in decimal, hex (0x5A3F), octal (0123), or binary (1101b) notation. The latter is an import from Tibbo BASIC :).

As per ANSI C, ASCII codes can be expressed with ' '. For 16- and 32-bit variables you can enclose up to 2 or 4 characters between ' '.

As per ANSI C, String constants can include escape sequences (\x00) to define unprintable characters. There are also several predefined escape sequences — see below.

There is no const or similar statement (and this is strongly criticized in ANSI C). Use the #define preprocessor directive instead.

It is possible to use expressions for constants.

All members of an array can be initialized at once using the ={,,,}; or ="    " syntax.

In Tibbo C it's NOT POSSIBLE to do this: char *b="123" (because constant strings of Tibbo devices are stored in flash memory).

 

Tibbo C:

char x=-100/5; //decimal notation + expression

unsigned char uc=11001010b; //binary notation
signed int si=0345; //octal notation

unsigned int ui=0x5A3F; //hex notation
unsigned long ul='0123'; //The result will be 0x30313233
string s="This is a test\x0A\x0D"; //string constant with LF/CR
#define TIME_GAP 10
x=TIME_GAP*2;
unsigned char arr[]={1,10,5,3}; //init an array
unsigned int arr2[2][2]={{1,2},{3,4}}; //init a two-dimensional array
char arr3[]="Test"; //NULL-character will be added

 

Predefined escape sequences (Tibbo BASIC and C)

"\0" for ASCII code 0

"\a" for ASCII code 7

"\b" for ASCII code 8 (BS character)

"\t" for ASCII code 9

"\n" for ASCII code 10 (LF character)

"\v" for ASCII code 11

"\f" for ASCII code 12

"\r" for ASCII code 13 (CR character)

"\e" for ASCII code 27 (ESC character)