+1. Зачем на не ООП языке писать ООП программы? Проще и понятнее код это не сделает, а для того, чтобы сопровождать такую программу придется разбираться в этой надстройке над Си, + макросы усложняют отладку и потенциально приводят к нетривиальным ошибкам.