gpt4 book ai didi

c - 在函数调用中使用它时,将值添加到结构中的指针

转载 作者:太空宇宙 更新时间:2023-11-04 01:23:03 25 4
gpt4 key购买 nike

以前我有一个函数f(double *a),它获取一个数组来处理。为了获得它应该在数组上工作的正确位置,它被称为 f(a+offset)offset 是一个整数。现在我重新编写了代码,并定义了一个自定义结构:

typedef struct{
double *a;
} struName;

函数变为f(struName *a)。现在我想知道我如何仍然可以获得函数的偏移量,而不必创建一个新的临时 struct 或不必从 f(struName *a) 更改函数到 f(struName *a, int offset)。这可能吗?

最佳答案

如果不更改结构的内容或调用未定义的行为,这是不可能的。

如果您有权访问 ISO C99,则可以更改签名以按值接受 struct,并传入复合文字:

f((struct struName){ .a = myStruct.a + offset });

否则,您提出的具有不同参数的解决方案应该可以正常工作:

f(myStruct, offset);

关于c - 在函数调用中使用它时,将值添加到结构中的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36908344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com