【发布时间】:2015-05-07 14:46:57
【问题描述】:
findwitholding(Gross_Pay,FDH_Witholding,FW_TAXRATE);
findwitholding(Gross_Pay,FDH_Witholding,SW_TAXRATE);
findwitholding(Gross_Pay,FDH_Witholding,HOSPITALIZATION);
如何返回所有三个调用函数的值?
void findwitholding(farray Gross_Pay, farray FDH_Witholding,
float Witholding)
{
for(int i = 0; i < ISIZE; i++)
FDH_Witholding[i] = Gross_Pay[i] * Witholding;
}
如何按值传递它?像这样?
typedef float farray[5] //we have to use typedef
farray FED,STATE,HOSPITAL;
FED = findwitholding(Gross_Pay,FDH_Witholding,FW_TAXRATE);
STATE = findwitholding(Gross_Pay,FDH_Witholding,SW_TAXRATE);
HOSPITAL = findwitholding(Gross_Pay,FDH_Witholding,HOSPITALIZATION);
如果是,函数应该是这样的吗?
*farray* findwitholding(farray Gross_Pay, farray FDH_Witholding,
float Witholding)
{
for(int i = 0; i < ISIZE; i++)
FDH_Witholding[i] = Gross_Pay[i] * Witholding;
return FDH_Witholding;
}
【问题讨论】:
-
C 风格的数组在这样使用时效果不佳。请改用
std::array或std::vector。 -
您可以将数组包装在结构中,并返回/传递结构的实例:stackoverflow.com/questions/27410943/…
标签: c++ function return typedef pass-by-value