C - 在堆栈上返回2个值

Sha*_*zin 2 c stack

可能重复:
从函数返回多个值

我坚持使用返回2个值来堆叠.我的任务是编写一个计算复数的程序.一切都很好,但有一点.在分割数字的功能我想做2个案例:

  1. 如果我除以的数不等于0,则只将除以结果作为一个值.
  2. 如果数字由wchich我除以EQUALS 0,我想返回2个值.

对于复数,我使用结构(双实数和双虚数).我使用的函数是复数结构的类型.通过函数返回我只能返回1个值.我怎样才能让第二个拥有与分割前相同数量的数字?我知道我应该使用指针,但我仍然无法弄清楚如何在这里使用它们.

Ste*_*sop 6

既然你已经有一个复数的结构(我会调用它complex),你可以只返回一个实例:

struct one_or_two_complexes { 
     int howmany; 
     struct complex first; 
     struct complex second; 
};
Run Code Online (Sandbox Code Playgroud)

这是否是一个好主意可能取决于调用者应该如何使用它

在调用者确定除数为零的情况下,他们可以写complex result = your_function(a,b).first;,这很好.

在调用者不确定的情况下,并且根据它是否为零而想要做一些不同的事情,那么他们可以将函数调用的结果存储在他们自己的实例中one_or_two_complexes然后检查howmany,或者他们可以检查他们自己传入的除数是否为零,并且在不同的情况下以不同的方式调用你的函数.