view test/test2.c @ 632:704b483c3122

Intel mac continue... switch/function stack alignment
author kono
date Wed, 11 Oct 2006 03:39:45 +0900
parents 682c8ec38d45
children 6b7372e17970
line wrap: on
line source

#include <stdio.h>
int sender_bit;

__code (*ret)(int);
void *env;

struct packet {
        int bit;
        char *msg;
        __code (*next)();
};

__code print_struct(struct packet pkt)
{
        printf("bit: %d\n", pkt.bit);
        printf("message: %s\n", pkt.msg);
        goto ret(0), env;
}

__code initSender(int init_bit, struct packet pkt)
{
        sender_bit = init_bit;
        pkt.next = print_struct;
        printf("initSender bit: %d\n", pkt.bit);
        printf("initSender message: %s\n", pkt.msg);
        printf("sender_bit: %d\n", sender_bit);
        goto print_struct(pkt);
}

int main(void)
{
        struct packet pkt;
        pkt.bit = 1;
        pkt.msg = "hogehoge";
        pkt.next = initSender;
        ret = return;
        env = environment;
        printf("main bit: %d\n", pkt.bit);
        printf("main message: %s\n", pkt.msg);
        goto initSender(0, pkt);
}