You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
146 lines
2.7 KiB
146 lines
2.7 KiB
4 years ago
|
import std.stdio;
|
||
|
|
||
|
void foo()
|
||
|
{
|
||
|
float f = x % y;
|
||
|
double d = x % y;
|
||
|
real r = x % y;
|
||
|
result = (x < y); // false if x or y is nan
|
||
|
assert(e == 0);
|
||
|
int array[17];
|
||
|
array[] = value;
|
||
|
int array[17];
|
||
|
for (i = 0; i < array.length; i++)
|
||
|
func(array[i]);
|
||
|
int array[17];
|
||
|
foreach (int value; array)
|
||
|
func(value);
|
||
|
int[] array;
|
||
|
|
||
|
array.length = array.length + 1;
|
||
|
array[array.length - 1] = x;
|
||
|
char[] s1;
|
||
|
char[] s2;
|
||
|
char[] s;
|
||
|
|
||
|
s = s1 ~ s2;
|
||
|
s ~= "hello";
|
||
|
|
||
|
|
||
|
writefln("Calling all cars %s times!", ntimes);
|
||
|
Louter:
|
||
|
for (i = 0; i < 10; i++)
|
||
|
{
|
||
|
for (j = 0; j < 10; j++)
|
||
|
{
|
||
|
if (j == 3)
|
||
|
break Louter;
|
||
|
if (j == 4)
|
||
|
continue Louter;
|
||
|
}
|
||
|
}
|
||
|
// break Louter goes here
|
||
|
typedef bit bHandle;
|
||
|
typedef int iHandle = -1;
|
||
|
typedef void* Handle = cast(void*)(-1);
|
||
|
Handle h;
|
||
|
h = func();
|
||
|
if (h != Handle.init)
|
||
|
;
|
||
|
char[] string = "hello";
|
||
|
|
||
|
if (string < "betty")
|
||
|
;
|
||
|
int* p = address;
|
||
|
|
||
|
volatile { i = *p; }
|
||
|
|
||
|
char [] ml = "This text spans
|
||
|
multiple
|
||
|
lines
|
||
|
";
|
||
|
|
||
|
}
|
||
|
|
||
|
void dostring(char[] s)
|
||
|
{
|
||
|
switch (s)
|
||
|
{
|
||
|
case "hello": ;
|
||
|
case "goodbye": ;
|
||
|
case "maybe": ;
|
||
|
default: ;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
struct ABC
|
||
|
{
|
||
|
int z; // z is aligned to the default
|
||
|
|
||
|
align (1) int x; // x is byte aligned
|
||
|
align (4)
|
||
|
{
|
||
|
... // declarations in {} are dword aligned
|
||
|
}
|
||
|
align (2): // switch to word alignment from here on
|
||
|
|
||
|
int y; // y is word aligned
|
||
|
}
|
||
|
|
||
|
struct Foo
|
||
|
{
|
||
|
int i;
|
||
|
union
|
||
|
{
|
||
|
struct { int x; long y; }
|
||
|
char* p;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
struct Foo { int x; int y; } // note there is no terminating ;
|
||
|
Foo foo;
|
||
|
|
||
|
|
||
|
struct Foo { int x; int y; }
|
||
|
|
||
|
off = Foo.y.offsetof;
|
||
|
|
||
|
union U { int a; long b; }
|
||
|
U x = { a:5 };
|
||
|
|
||
|
struct S { int a; int b; }
|
||
|
S x = { b:3, a:5 };
|
||
|
|
||
|
int[3] a = [ 3, 2, 0 ];
|
||
|
int[3] a = [ 3, 2 ]; // unsupplied initializers are 0, just like in C
|
||
|
int[3] a = [ 2:0, 0:3, 1:2 ];
|
||
|
int[3] a = [ 2:0, 0:3, 2 ]; // if not supplied, the index is the
|
||
|
// previous one plus one.
|
||
|
|
||
|
enum color { black, red, green }
|
||
|
int[3] c = [ black:3, green:2, red:5 ];
|
||
|
|
||
|
char[] file = `c:\root\file.c`;
|
||
|
char[] quoteString = \" r"[^\\]*(\\.[^\\]*)*" \";
|
||
|
|
||
|
char[] hello = "hello world" \n;
|
||
|
char[] foo_ascii = "hello"; // string is taken to be ascii
|
||
|
wchar[] foo_wchar = "hello"; // string is taken to be wchar
|
||
|
|
||
|
enum COLORS { red, blue, green };
|
||
|
|
||
|
char[][COLORS.max + 1] cstring =
|
||
|
[
|
||
|
COLORS.red : "red",
|
||
|
COLORS.blue : "blue",
|
||
|
COLORS.green : "green",
|
||
|
];
|
||
|
|
||
|
const ushort table1[16] = [
|
||
|
0x00A7, 0x0322, 0x07AD, 0x0428,
|
||
|
0x0536, 0x06B3, 0x023C, 0x01B9];
|
||
|
|
||
|
const ushort table2[16] = [ 0x0000, 0x0385, 0x070A, 0x048F,
|
||
|
0x0536, 0x06B3, 0x023C, 0x01B9];
|
||
|
|