Let me suggest a way that the client code could be eg "ccsObjectRef(to);"...
...
Bool ccsObjectRef_(CCSObject *object);
#define ccsObjectRef(obj) ccsObjectRef_(&obj->object)
...
No nasty casts, and type safe. At the cost of requiring a member named "object" of CCSObject type.
Let me suggest a way that the client code could be eg "ccsObjectRef( to);".. . (CCSObject *object); (&obj-> object)
...
Bool ccsObjectRef_
#define ccsObjectRef(obj) ccsObjectRef_
...
No nasty casts, and type safe. At the cost of requiring a member named "object" of CCSObject type.