我有以下代码部分,我需要在整个程序中使用大约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
}
答案 0 :(得分:4)
您可以考虑回调函数。例如,
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
}
答案 1 :(得分:-1)
人们往往会忘记包含可以在代码中的任何位置使用,而不仅仅对标题(Including one C source file in another?)有用。然而,有些人不赞成他们。
示例:
common.inc:
x = x + 1;
的main.c
int main()
{
{
int x = 3;
#include "common.inc"
printf("x = %d\n", x);
}
{
double x = 1.234;
#include "common.inc"
printf("x = %f\n", x);
}
return 0;
}
CNC中 对于您的代码,这将导致:
commonStart.inc
while (loop_day < (day+1))
{
while (loop_size < (size+1))
{
commonEnd.inc
size = size + 1;
}
loop_day = loop_day + 1;
}
的main.c
#include "commonStart.inc"
//new lines here
#include "commonEnd.inc"