mirror of
https://github.com/Zeal-Operating-System/ZealOS.git
synced 2025-01-29 23:56:07 +00:00
dd21cff146
Remove .C suffix on non-executable binary files.
76 lines
1.5 KiB
HolyC
Executable file
76 lines
1.5 KiB
HolyC
Executable file
//Demonstrates dynamic initialization of variables.
|
|
//Static variables are, essentually, global variables.
|
|
|
|
class Test
|
|
{
|
|
I32 time;
|
|
U8 name[8];
|
|
};
|
|
|
|
Test g1[] = {
|
|
{10, "Name1"},
|
|
{(tS % 10.0) * 100, "Name2"}, //Dynamic initialization
|
|
{30, "Name3"}
|
|
};
|
|
|
|
Dump(g1, sizeof(g1));
|
|
"Time 1:%d\n", g1[1].time;
|
|
|
|
U0 Main1()
|
|
{
|
|
static Test s1[] = {
|
|
{10, "Static1"},
|
|
{(tS % 10.0) * 100, "Static2"}, //Dynamic initialization
|
|
{30, "Static3"}
|
|
};
|
|
Dump(s1, sizeof(s1));
|
|
"Time 2:%d\n", s1[1].time;
|
|
}
|
|
|
|
Main1;
|
|
|
|
/*Now, we'll use the data heap global option
|
|
to force global variables onto the data heap.
|
|
|
|
You can turn the data heap flag
|
|
on and off within your programs, leaving
|
|
ones which need initialization on the code heap.
|
|
|
|
You can't dynamically initialize data heap
|
|
globals--they are consts. This might be a silly
|
|
point, but might res in odd differences, perhaps
|
|
from the order things are evaluated.
|
|
|
|
Data heap globals are good for AOT modules
|
|
because they don't take-up room in the .ZXE file.
|
|
*/
|
|
|
|
#ifjit
|
|
#exe {Option(OPTf_GLOBALS_ON_DATA_HEAP, ON);};
|
|
|
|
Test g2[] = {
|
|
{10, "name1"},
|
|
{(tS % 10.0) * 100, "name2"}, //No dynamic initialization--converted to const
|
|
{30, "name3"}
|
|
};
|
|
|
|
Dump(g2, sizeof(g2));
|
|
"Time 3:%d\n", g2[1].time;
|
|
|
|
U0 Main2()
|
|
{
|
|
static Test s2[] = {
|
|
{10, "static1"},
|
|
{(tS % 10.0) * 100, "static2"}, //No dynamic initialization--converted to const
|
|
{30, "static3"}
|
|
};
|
|
Dump(s2, sizeof(s2));
|
|
"Time 4:%d\n", s2[1].time;
|
|
}
|
|
|
|
Main2;
|
|
|
|
#exe {Option(OPTf_GLOBALS_ON_DATA_HEAP, ON);};
|
|
#endif
|
|
|
|
'\n';
|