传递一个结构体指针
你好 我有一个函数 A ( xy * abc)
,它接受一个指向结构的指针。
typedef struct
{
int a;
char * b;
} xy;
typedef struct
{
xy c;
xy d;
} uv;
uv *sha;
如果我需要使用 uv
为 c
和 d
调用函数 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果 uv 是一个结构,而不是指向结构的指针,则需要执行 A(&uv.c) ,但在您的情况下, uv< /code> 是一个结构类型,而不是实际的结构,您需要有一个 uv 类型的变量:
If
uv
is a struct, and not a pointer to struct, you need to doA(&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
类型的变量,然后将其传递给函数:A(xy*)
-->获取xy
类型对象的地址var.c
-->返回 xy 类型的对象&var.c
-->返回返回的xy
对象A(xy*)
的地址 -->获取xy
类型对象的地址sha->c
-->返回 xy 类型的对象&(sha->c)
-->返回返回的xy
对象的地址Create a variable of type
uv
then pass it to the function:A(xy*)
--> takes addres of an object of typexy
var.c
--> returns object of typexy
&var.c
--> returns address of returnedxy
objectA(xy*)
--> takes addres of an object of typexy
sha->c
--> returns object of typexy
&(sha->c)
--> returns address of returnedxy
object虽然看起来是正确的,但我会这样做:
注意额外的括号;这些是为了增加更多的冗长性,尽管编译器可能不需要这些。
Although it seems correct, but I will do it like this:
Note the additional parantheses; these are there to add more verbosity although compiler probably won't need those.