在主函数中定义的数据,不希望在函数中传来传去的,那就传递地址好了。不需要传参数本身,也不需要获取返回值,处理完马上就能用。
小例子:
#include <stdio.h>
typedef struct DATA {
int num;
} data;
typedef struct TEST {
int *a;
data *b;
data *c;
} test;
int func(test t)
{
*(t.a) = 111;
(*(t.b)).num = 222;
(t.c)[1].num = 333;
}
int main()
{
test t;
int a = 666;
data b;
b.num = 888;
data c[2];
c[1].num = 999;
printf("%d %d %d\n", a, b.num, c[1].num);
t.a = &a;
t.b = &b;
t.c = c;
func(t);
printf("%d %d %d\n", a, b.num, c[1].num);
return 0;
}
运行结果: