/* 期待する出力は ababababab */
#include<stdio.h>
/* こんな時 func_t はどんな型で typedef すればいいのしょうか? */
typedef void *(*func_t)(void);

func_t a(void);
func_t b(void);

func_t a(void){putchar('a');return b;}
func_t b(void){putchar('b');return a;}

int main(void){
func_t func=a;
int i;

for(i=0;i<10;i++) func=func();

return 0;
}