gpt4 book ai didi

c - C 中 struct 类型变量的别名

转载 作者:行者123 更新时间:2023-11-30 19:14:16 25 4
gpt4 key购买 nike

我想为 C 中的结构对象创建(某种类型的)“别名”。

基于变量,a 应该是 xy。但它不应该被复制,它需要是对该a对象的引用。

一些代码:

void search(node start, node end) {
int myid = omp_get_thread_num();
node localstart;
if (myid == 0) {
// start correct way
localstart = start; // <-- how?!
}
else{
// start reversed way
localstart = end; // <-- how?!
}
// do something with localstart eg.:
localstart->dist = 0;
// now should
// start->dist == 0 or end->dist == 0 (based on myid)
// be true!
}

该代码是双向搜索的一部分。一个线程应该从头开始并搜索结束,另一个线程应该从结束开始并搜索开始。

另一方面,我可以调用具有开始和结束(和相反)的函数。但同样在这里,我需要传递结构作为引用。如果可能的话,我想使用第一个想法!

最佳答案

在 C 中,您可以使用指针引用变量:

node *localstart;
if (myid == 0) {
// start correct way
localstart = &start;
}
else {
// start reversed way
localstart = &end;
}
(*localstart)->dist = 0;

从您对 node 的使用来看,很明显它实际上是一个指向结构的指针,所以现在您有了一个指向指针的指针。对于 C 编译器来说这不是问题,在某些情况下它甚至可以优化掉指针变量。只是不要忘记括号!

关于c - C 中 struct 类型变量的别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34382478/

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