在我用 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 代码中执行此操作 - 将指针传递给在另一个结构内声明的结构?我无法在 SO 和 Google 中找到任何关于此的信息。
最佳答案
只是做:
void myFunction(struct _small *poSmall)
{
poSmall->varB = 0;
}
struct _small
的范围不限于其外部结构。
关于c - 如何将指向在另一个结构内声明的结构的指针作为函数参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30309537/