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