We are working on a game engine that is written in C and we are currently using the following naming convention:
ABClass object;
ABClassMethod(object, args)
AB Being our prefix.
Our API, even if working on objects, has no inheritance, polymorphism or anything, we just have datatypes and methods working on them.
Our Constants are named alike: AB_ConstantName and preprocessor macro are named like AB_API_BEGIN. We don't use function like macros.
I was wondering how this was fitting as a C API. Also, you may note that the entire API is wrapper into lua, and you can either use the API from C or lua. Most of the time, the engine will be used from lua.