If Request
is passed only as a parameter, it looks like an opaque pointer .
Must be
typedef struct Request Request
somewhere in the code. (see comments to your question)
This is used to define the API and hide implementation details. That way, you can change the implementation later without changing the API again.
The client does not need to know anything about the acutal type - its just a pen.
Everything you want to do with this should be done using api methods (create, delete, load, init, ...)
Typically, the Request
descriptor will be passed to something more meaningful in the api implementation. This was / is usually performed in old C.
source share