Mail Archives: djgpp/1998/07/10/22:15:25
Jason Nehf <zolaar AT earthlink DOT net> wrote:
> How would I pass a structure in a function, then have the function change
> the values in the structure? I know with regular variables, you just pass
> them by putting a '&' in front of the variable, but is there an equivilant
> with structures? Specifically, I'm trying to pass a structure with all of a
> RPG character's attributes (hitpoints, strength, dexterity, etc), and have
> it accelerate the character to a specific level. I know i could, instead of
> passing a structure, pass each variable individually, but that is a LOT of
> work that could be saved by passing a structure. Any help would be greatly
> appreciated!
You can pass stuctures either by value or reference, most programmers
perfer by reference since it's generally faster (other wise the whole
structure needs to be put on the stack) so ;
typedef struct {
int zop;
float bar;
} foo_t ;
/* by value */
foo_t my_func(foo_t foo)
{
foo.zop = 12;
foo.bar = 0.24;
return foo ;
}
or
/* by reference */
foo_t * my_func(foo_t * foo)
{
foo -> zop = 12;
foo -> bar = 0.24;
return foo ;
}
Cheers, flux.
- Raw text -