【问题标题】:How to return a co-ordinate structure in C如何在C中返回坐标结构
【发布时间】:2013-09-23 02:58:44
【问题描述】:
float generateCoor()
{
    srand(time(NULL));

    coordinate cd; //structure variable
    cd.rx = genRand();
    printf("X-coordinate: %.2f\n",rx);

    cd.ry = genRand();
    printf("Y-coordinate: %.2f\n",ry);
}

既然一个函数不能同时返回两个变量,那么我怎样才能将坐标返回给主函数呢?

【问题讨论】:

  • 一种常见的方法是定义一个struct,并传递一个指向它的指针。
  • C 仍然不允许你真正返回一个结构吗?我想他们现在已经解决了。哦。等等……

标签: c function coordinates return-value coordinate-systems


【解决方案1】:

您可以使用以下任何一种:-

coordinate generateCoor() { ... return cd;} 

int main(){
coordinate c = generateCoor();
}

void generateCoor(coordinate *cd) { ... }  

//Give it a proper name something like constructCoor 

int main(){
coordinate c;

generateCoor(&c);
}

【讨论】:

  • 如果我要要求调用者传入一个结构,我可能会调用这个函数而不是“我创造东西”y。也许constructCoor
  • @cHao “名字里有什么?” ~William Shakespeare :D
  • @POW 非常感谢
【解决方案2】:

您可以创建结构,并返回指向该结构的指针。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-23
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    • 2021-09-09
    • 2017-03-14
    • 1970-01-01
    相关资源
    最近更新 更多