c语言回调函数执行顺序