我想将一个指向函数 A 的结构体的指针传递给函数 B,该结构体是在函数 A 中声明的,这可能吗?
void func1() {
typedef struct {
int x;
int y;
}NumSet;
NumSet* nPtr1, nStructure;
nPtr1 = &nStructure;
nPtr1->x = 5;
nPtr1->y = 10;
printf("%d %d\n", nPtr1->x, nPtr1->y);
}
void func2(NumSet *nPtr2) {
int sum;
sum = nPtr2->x + nPtr2->y;
printf("The sum of %d and %d is %d", nPtr2->x, nPtr2->y, sum);
}
我知道如果将结构声明为全局结构将使工作变得容易,但我只是想知道是否有任何方法可以绕过这些限制。
struct
的定义必须在任何使用的地方都可见。
因此,您唯一的选择是将定义移出函数。