如何将指向另一个struct中声明的结构的指针作为函数参数传递?

时间:2015-05-18 17:33:31

标签: c function pointers struct parameters

在我用C编写的一个应用程序中,我有一个声明为另一个结构的成员的结构:

struct _test
{
    int varA;
    //...

    struct _small
    {
        int varB;
        //...
    } small;
} test;

现在我想创建一个访问上面varB的功能,但我不希望它访问整个结构test,也就是说,我不想做:

#include <relevant_header>

void myFunction()
{
    test.small.varB = 0;
}

相反,我想只将small结构作为参数传递给该函数;像这样的东西:

#include <relevant_header>

void myFunction(struct _test::_small* poSmall)
{
    poSmall->varB = 0;
}

问题是我不知道如何做到这一点,也就是说,上面的代码没有正确编译(我猜它只是C ++语法)。那么我怎样才能在C代码中执行此操作 - 将指针传递给在另一个struct中声明的结构?我无法在SO和Google中找到任何相关内容。

1 个答案:

答案 0 :(得分:6)

只是做:

void myFunction(struct _small *poSmall)
{
    poSmall->varB = 0;
}

struct _small的范围不仅限于其外部结构。