In C++, you can also add methods (member functions) to structs (not just classes) but I think this is indeed a C++ addition to structs, and not a C feature..
One thing that you could probably do, but would make it a little uglyer:
Add a function pointer to your struct. Always initialize this pointer to point to a global function, that takes an instance of that struct, and the parameter to set.
Code:
// In the struct, named "somestruct":
void (*setPan) (somestruct, var);
// Global function:
void somestructSetPan(somestruct thisStruct, var newPan)
{
thisStruct.ent.pan = newPan;
}
// Before you can use the function pointer, you must initialize it:
somestructInstance.setPan = somestructSetPan;
// Now just call it:
somestructInstance->setPan(someStructInstance, 90);
Note that all this takes quite a bit of setting up, and you might forget to do something. So what you should do is create a function that sets all members to an initial value (and sets the function pointers correctly). Basicly the equivalent of a C++ constructor.
You could also leave out the function pointer, and just call the global function with the struct and the new pan value.
Again, all this is not needed because the struct.ent.pan also works, but in large projects with large and complex structs, doing object oriented programming is really beneficial.