• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Test assignment operations
2 
testAssignment()3 void testAssignment() {
4     int a = 2;
5     a *= 5;
6     printf("2 *= 5  %d\n", a);
7     a = 20;
8     a /= 5;
9     printf("20 /= 5  %d\n", a);
10     a = 17;
11     a %= 5;
12     printf("17 %%= 5  %d\n", a);
13     a = 17;
14     a += 5;
15     printf("17 += 5  %d\n", a);
16     a = 17;
17     a-=5;
18     printf("17 -= 5  %d\n", a);
19     a = 17;
20     a<<=1;
21     printf("17<<= 1  %d\n", a);
22     a = 17;
23     a>>=1;
24     printf("17>>= 1  %d\n", a);
25     a = 17;
26     a&=1;
27     printf("17&= 1  %d\n", a);
28     a = 17;
29     a^=1;
30     printf("17^= 1  %d\n", a);
31     a = 16;
32     a^=1;
33     printf("16|= 1  %d\n", a);
34 }
35 
36 int a;
37 
f()38 int* f() {
39     printf("f()\n");
40     return &a;
41 }
42 
testEval()43 void testEval() {
44     a = 0;
45     printf("*f() = *f() + 10;\n");
46     *f() = *f() + 10;
47     printf("a = %d\n", a);
48 }
49 
testOpEval()50 void testOpEval() {
51     a = 0;
52     printf("*f() += 10;\n");
53     *f() += 10;
54     printf("a = %d\n", a);
55 }
56 
main()57 int main() {
58     testAssignment();
59     testEval();
60     testOpEval();
61     return 0;
62 }
63