我需要在整个程序中使用以下代码部分大约 5 次,但用不同的代码行代替注释。
while (loop_day < (day+1)) {
while (loop_size < (size+1)) {
//new lines here
size = size + 1;
}
loop_day = loop_day + 1;
}
我可以多次复制和粘贴此内容,但出于美观原因,我真的不愿意。我尝试搜索“可以将语句作为参数的函数”,但没有找到合适的内容。
编辑:我想将各种语句“嵌入”到代码中。
一个例子:
while (loop_day < (day+1)) {
while (loop_size < (size+1)) {
// code that stores various values into an array
size = size + 1;
}
loop_day = loop_day + 1;
}
while (loop_day < (day+1)) {
while (loop_size < (size+1)) {
// code that reads values stored in that array
size = size + 1;
}
loop_day = loop_day + 1;
}
但我想要像这样的东西:
custom_loop {
// code that stores various values into an array
}
custom_loop {
// code that reads values stored in that array
}
最佳答案
你可以想到回调函数。例如,
typedef void (*t_func)(int, int);
void doLoopOverDaysAndSize(t_func callback)
{
while (loop_day < (day+1)) {
while (loop_size < (size+1)) {
callback(loop_day, loop_size)
size = size + 1;
}
loop_day = loop_day + 1;
}
}
然后你可以传递一些像这样的函数
void myDaySizeHandler(int day, int size)
{
// do something
}
关于c - 是否有一个可以将语句作为参数的等效函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50231058/