我正在试验回调函数,我看不到这里出了什么问题。回电函数问题
func1需要两个函数指针,我将指针传递给func2和func3。 func2在打印到cout之前应等待5秒钟,func3应在打印到cout之前等待12秒钟。 wait()函数我已经实现了自己,但没有包含在这里。
程序运行时,5秒后,func2和func3同时打印出来。我本来希望等5秒钟才能打印func2,然后再等12秒钟才能打开func3,但事实并非如此。
任何人都可以看到这里有什么不对吗?提前谢谢了。
#define ONE_SEC 1000000000/3
void wait(int);
void func1(void(*)(), void(*)());
void func2();
void func3();
int main()
{
std::cout<<"In Main Program!!"<<std::endl;
void (*funcPtr2)();
void (*funcPtr3)();
funcPtr2 = func2;
funcPtr3 = func3;
func1(funcPtr2, funcPtr3);
return 0;
}
void func1(void (*fptr2)(), void (*fptr3)())
{
std::cout<<"In function one!!"<<std::endl;
(*fptr2)();
(*fptr3)();
}
void func2()
{
wait(5);
std::cout<<"In function 2 - callback function!!"<<std::endl;
}
void func3()
{
wait(20);
std::cout<<"In function 3 - callback function!!"<<std::endl;
}
void wait (int secs)
{
long j;
long i;
for (i = 0; i < secs * (ONE_SEC); i++)
{
j++;
}
}
* *我们可能已经找到了问题,然后。 – jrok
您的程序等待执行某些功能的时间有多长,但您没有显示负责*等待的代码。你看到这个问题吗? –
我已经包含wait()代码 – Engineer999