我已经卡在点上,返回了2个值到堆栈。我的任务是编写一个计算复数的程序。一切都很好,但只有一件事。在将数除以数的函数中,我想做两个例子:
对于复数,我使用结构(双实数和双虚数)。我使用的函数是复数结构的类型。通过函数返回,我只能返回一个值。如何返回第二个在堆栈中具有与除法前相同数量的数字?我知道我应该使用指针,但我仍然不知道如何在这里使用它们。
发布于 2013-01-03 10:23:10
由于您已经有了一个复数的结构(我将称之为complex
),所以您可以只返回以下实例:
struct one_or_two_complexes {
int howmany;
struct complex first;
struct complex second;
};
这是否是个好主意,可能取决于要求调用者如何使用它。
在调用方确实知道除数不是零的情况下,他们可以只编写complex result = your_function(a,b).first;
,这很好。
如果调用方不确定,并且希望根据函数调用是否为零执行不同的操作,则可以将函数调用的结果存储在自己的one_or_two_complexes
实例中,然后检查howmany
,或者可以自己检查传入的除数是否为零,并在不同的情况下以不同的方式调用函数。
https://stackoverflow.com/questions/14144773
复制相似问题