#include #include #include "../context.h" Time* createTimeImpl(struct Context* context) { struct Time* time = new Time(); struct TimeImpl* timeImpl = new TimeImpl(); time->time = (union Data*)timeImpl; time->start = C_startTime; time->end = C_endTime; return time; } __code startTime(struct TimeImpl* time, __code next(...)) { struct timeval tv; gettimeofday(&tv, NULL); time->time = tv.tv_sec + (double)tv.tv_usec*1e-6; goto next(...); } __code endTime(struct TimeImpl* time, __code next(...)) { struct timeval tv; gettimeofday(&tv, NULL); printf("%0.6f\n", (tv.tv_sec+(double)tv.tv_usec*1e-6) - time->time); goto next(...); }