What would be a set of nifty preprocessor hacks (ANSI C89/ISO C90 compatible) which enable some kind of ugly (but usable) object-orientation in C?
I am familiar with
You can try out COOP, a programmer-friendly framework for OOP in C, features Classes, Exceptions, Polymorphism, and Memory Management (important for Embedded code). It's a relatively lightweight syntax, see the tutorial in the Wiki there.