78
|
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
|