Mercurial > hg > CbC > CbC_gcc
comparison CbC-examples/test2.c @ 78:365b84b6fe04
more examples
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 20 Sep 2011 17:32:20 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
77:65b2ea5f1266 | 78:365b84b6fe04 |
---|---|
1 #define __environment _CbC_environment | |
2 #define __return _CbC_return | |
3 | |
4 #include <stdio.h> | |
5 int sender_bit; | |
6 | |
7 __code (*ret)(int,void *); | |
8 void *env; | |
9 | |
10 struct packet { | |
11 int bit; | |
12 char *msg; | |
13 __code (*next)(); | |
14 }; | |
15 | |
16 __code print_struct(struct packet pkt) | |
17 { | |
18 printf("#0017:bit: %d\n", pkt.bit); | |
19 printf("#0018:message: %s\n", pkt.msg); | |
20 goto ret(0, env); | |
21 } | |
22 | |
23 __code initSender(int init_bit, struct packet pkt) | |
24 { | |
25 sender_bit = init_bit; | |
26 pkt.next = print_struct; | |
27 printf("#0026:initSender bit: %d\n", pkt.bit); | |
28 printf("#0027:initSender message: %s\n", pkt.msg); | |
29 printf("#0028:sender_bit: %d\n", sender_bit); | |
30 goto print_struct(pkt); | |
31 } | |
32 | |
33 int main(void) | |
34 { | |
35 struct packet pkt; | |
36 pkt.bit = 1; | |
37 pkt.msg = "hogehoge"; | |
38 pkt.next = initSender; | |
39 ret = __return; | |
40 env = __environment; | |
41 printf("#0040:main bit: %d\n", pkt.bit); | |
42 printf("#0041:main message: %s\n", pkt.msg); | |
43 goto initSender(0, pkt); | |
44 } | |
45 |