我正在学习一段代码,不知道如何仅使用一个函数来实现此功能?如何将参数传递给函数?
#include <stdio.h>
struct colleagues {
int female[10];
int male[10];
} teams[20];
void func(int count[])
{
for (int i = 0; i < 10; i++) {
printf("%d\n", count[i]);
}
}
//FIXME
void showCnt(void (*function)(int *), int XXX[])
{
for (int n = 0; n < 20; n++) {
func(teams[n].XXX);
}
}
int main()
{
//How can i just use only one function showCnt to do this work???, I'm so appreciated.
//***FIXME, How can i pass parameters "teams.female" to showCnt???***
showCnt(function, teams.female);
showCnt(function, teams.male);
return 0;
}
抱歉,我没说清楚。我不知道如何将参数“ teams.male”作为数组传递给showCnt(),我想知道如何分别两次调用showCnt()来打印信息。
例如,首先,它调用showCnt(teamXX.female),其次,它调用showCnt(teamXXX.male)。我不知道是否可以将参数传递给showCnt()以使“ func(team [n] .male)”和“ func(team [n] .female)”正常工作。
最佳答案
如果我对您的理解正确,则只想将showCnt
称为
showCnt(function);
并且应该同时打印
teams.female
和teams.male
?然后从函数
count
中删除(错误的)showCnt
参数。然后在showCnt
循环内,用function
和teams[n].female
调用teams[n].male
两次。关于c - 我如何只使用一个函数showCnt()来显示结构数组的成员?如何传递参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56422548/