在我用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中找到任何相关内容。
答案 0 :(得分:6)
只是做:
void myFunction(struct _small *poSmall)
{
poSmall->varB = 0;
}
struct _small
的范围不仅限于其外部结构。