Да да, именно в C! Дело в том, что можно огранизовать некоторое подобие объектов и в старом добром C.
Весь метод заключается в использовании указатей на структуры и функции.
В итоге, можно огранизовать программу, использующую объекты, правда, к сожалению, пока не преодолены некоторые ограничения:
1. Конструктор - отдельная функция, не входящая в класс (так как именно он связывает указатели с реальными функциями).
2. Деструктор не вызывается автоматически.
3. Все члены класса - открытые.
4. Как такового наследования не реализовано.
Возможно, позднее эти ограничения (или хотя бы некоторые из них) будут сняты.
Довольно простой пример прикреплен к сообщению.

c_obj.c.tar.bz2