传递一个结构体指针

发布于 2024-11-08 03:17:51 字数 393 浏览 0 评论 0原文

你好 我有一个函数 A ( xy * abc) ,它接受一个指向结构的指针。

typedef struct
{
int a;
char * b;
} xy;

typedef struct
{
xy c;
xy d;
} uv;

uv *sha;

如果我需要使用 uvcd 调用函数 A,我应该如何传递参数?我正在使用以下方法调用函数 A

A (&sha->c);
A (&sha->d);

此调用正确吗?

请帮助我

Hi
I have a function A ( xy * abc) that takes a pointer to a structure.

typedef struct
{
int a;
char * b;
} xy;

typedef struct
{
xy c;
xy d;
} uv;

uv *sha;

If i need to call the function A for c and d using uv how should I pass the argument? I am calling function A by using this:

A (&sha->c);
A (&sha->d);

Is this call correct?

Kindly help me

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

怪我闹别瞎闹 2024-11-15 03:17:52

如果 uv 是一个结构,而不是指向结构的指针,则需要执行 A(&uv.c) ,但在您的情况下, uv< /code> 是一个结构类型,而不是实际的结构,您需要有一个 uv 类型的变量:

uv somevar;
A(&somevar.c);

If uv is a struct, and not a pointer to struct, you need to do A(&uv.c), but in your case, uv is a struct type, not an actual struct, you need to have a variable of type uv:

uv somevar;
A(&somevar.c);
謌踐踏愛綪 2024-11-15 03:17:52

创建一个 uv 类型的变量,然后将其传递给函数:

uv var; 
A(&(var.c)); 

A(xy*) -->获取xy类型对象的地址
var.c -->返回 xy 类型的对象
&var.c -->返回返回的xy对象

uv *sha;
A(&(sha->c));
A(&(sha->d));

A(xy*)的地址 -->获取xy类型对象的地址
sha->c -->返回 xy 类型的对象
&(sha->c) -->返回返回的xy对象的地址

Create a variable of type uv then pass it to the function:

uv var; 
A(&(var.c)); 

A(xy*) --> takes addres of an object of type xy
var.c --> returns object of type xy
&var.c --> returns address of returned xy object

uv *sha;
A(&(sha->c));
A(&(sha->d));

A(xy*) --> takes addres of an object of type xy
sha->c --> returns object of type xy
&(sha->c) --> returns address of returned xy object

此岸叶落 2024-11-15 03:17:52

虽然看起来是正确的,但我会这样做:

A (&(sha->c));
A (&(sha->d));

注意额外的括号;这些是为了增加更多的冗长性,尽管编译器可能不需要这些。

Although it seems correct, but I will do it like this:

A (&(sha->c));
A (&(sha->d));

Note the additional parantheses; these are there to add more verbosity although compiler probably won't need those.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文