source: doc/theses/jiada_liang_MMath/test.c @ 0c51c8b4

Last change on this file since 0c51c8b4 was 1725989, checked in by Peter A. Buhr <pabuhr@…>, 5 months ago

add enumeration test programs for different programming languages

  • Property mode set to 100644
File size: 1.6 KB
Line 
1#include <stdio.h>
2#include <stdlib.h>
3//#include <fstream.hfa>
4
5enum color { red, blue, green };
6//enum color c1 = 0;
7//enum color c2 = 1;
8enum color c3 = 2;
9int c = red;
10
11static const int one = 0 + 1;
12static const void * NIL = NULL;
13static const double PI = 3.14159;
14static const char Plus = '+';
15static const char * Fred = "Fred";
16static const int Mon = 0, Tue = Mon + 1, Wed = Tue + 1, Thu = Wed + 1, Fri = Thu + 1,
17                                        Sat = Fri + 1, Sun = Sat + 1;
18
19void foo() {
20        const int r = random() % 100;
21        int va[r];
22}
23
24struct Person { char * name; int age, height; };
25
26//enum E { A, B, C };
27
28enum { X = 10, Y = 9, Z = -5 };
29enum { A, B, C = 10, D, E = 10 };
30
31enum { Size = 20, Max = 10, MaxPlus10 = Max + 10, Max10PlusOne };
32
33//enum( Person ) friends { Liz = { "ELIZABETH", 22, 170 }, Beth = Liz,
34//                                               Jon = { "JONATHAN", 35, 190 } };
35
36void www( int p ) {}
37
38int main() {
39        printf( "%d\n", Size );
40        struct /* unnamed */ { int i; } x, y, z;
41        x.i = 3;
42        www( x.i );
43
44        struct S {
45                union /* unnamed */ { // unscoped fields
46                        int i; double d ; char ch;
47                };
48        };
49
50        struct S s;
51        s.i = 3;
52        s.d = 3.5;
53
54        const int r = random();
55        int sa[Sun];
56
57        enum Week { Mon, Tue, Wed, Thu = 10, Fri, Sat, Sun };
58        enum Week week;
59        switch ( week ) {
60          case Mon: case Tue: case Wed: case Thu: case Fri:
61                printf( "weekday\n" );
62          case Sat: case Sun:
63                printf( "weekedn\n" );
64        }
65        for ( enum Week day = Mon; day <= Sun; day = (enum Week)(day + 1) ) {
66        }
67
68        // int jane_pos = posnE( Mon );
69        // char * jane_value = valueE( Jane );
70        // char * jane_label = labelE( Names.Jane );
71        // sout | labelE( Names.Jane ) | valueE( Names.Jane );
72}
Note: See TracBrowser for help on using the repository browser.