Solo per correttezza:
#include<stdio.h>
void f(int b)
{
int a = 0;
printf("a:%d b:%d\n",a,b);
a++;
if (b++ < 2 )
f(b);
return;
}
int main()
{
f(0);
return 0;
}
oppure:
#include<stdio.h>
void recursive_for(int i,int max)
{
if (i == max) return;
printf("a:0 b:%d\n",i++);
recursive_for(i,max);
return;
}
int main()
{
recursive_for(0,3);
return 0;
}
oppure buffamente come:
#include<stdio.h>
typedef int(*FOREVAL)(int i,int max);
typedef void(*FORAV)(int* i);
typedef void(*FORSPACE)(int* i);
int for_evalutation(int i, int max)
{
return (i < max) ? 0 : 1;
}
void for_avanzamento(int* i)
{
++*i;
}
void for_space(int* i)
{
printf("i:%d\n",*i);
}
void recursive_for(int i,int max,FOREVAL fev,FORAV fav,FORSPACE fs)
{
if (fev(i,max)) return;
fs(&i);
fav(&i);
recursive_for(i,max,fev,fav,fs);
return;
}
int main()
{
recursive_for(0,3,for_evalutation,for_avanzamento,for_space);
return 0;
}