Coo - C, Object Oriented http://sourceforge.net/projects/coo/
---------coo.h-------------- #ifndef __COO_H__ #define __COO_H__ typedef struct VTable /*root of virtual table class*/ { long offset; /*servers for FREE*/ } VTable; #define EXTENDS(s) \ union \ { \ s s; \ s; \ }; #define VT(v) const v* vt; #define EXTENDS2(s,v) \ union \ { \ VT(v) \ s s; \ s; \ }; #ifndef offsetof #define offsetof(s,m) ((long)&((s*)0)->m) #endif #define SUPER(s,m,p) ((s*)((char*)(p)-offsetof(s,m))) #define FREE(p,vt) free((char*)(p)-(vt)->offset) #endif ---------------------------------- initialization of the enum: enum { int i; float f; } t={1.5}; //t.f because of EXTENDS2 in coo.h, compiler needs to initialze last member of enum.