gpt4 book ai didi

c - 在 C 中增加类型转换的 void 指针

转载 作者:行者123 更新时间:2023-12-04 09:15:48 24 4
gpt4 key购买 nike

我有一个函数,它接受一个 void 指针作为参数。我想将该指针转换为特定类型(例如 double ),然后递增它。下面的代码正是我想要的

function(void *out){
double *temp = (double*) out;
temp++;
out = temp;

/* do something with out here */
}

但是,如果我将所有内容都放在一个表达式中,例如

(double*)out++;

((double*)out)++;

编译器不喜欢它。有没有更优雅的方法来做到这一点?

最佳答案

表达式

((double*)out)++;

是有问题的,因为它试图增加转换的结果,这不是 lvalue。 .但是,将 1 添加到强制转换的结果并将其分配回 out 是完全没问题的:

out = ((double*)out)+1;

关于c - 在 C 中增加类型转换的 void 指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37021783/

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