如何在两个函数(都不是主函数)中传递结构体指针

问题描述 投票:0回答:1

我想将一个指向函数 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);
}

我知道如果将结构声明为全局结构将使工作变得容易,但我只是想知道是否有任何方法可以绕过这些限制。

c function pointers structure
1个回答
0
投票

struct
的定义必须在任何使用的地方都可见。

因此,您唯一的选择是将定义移出函数。

© www.soinside.com 2019 - 2024. All rights reserved.