我对编程和C比较陌生,但我一直在尝试用C语言创建自己的“延迟”函数。 实质上,它会将程序暂停用户放置的秒数 in。例如:
int main (int argc, char *argv[]) {
printf("There will now be a ten second pause.\n");
delay(10);
printf("Ten seconds have now passed.\n");
return 0;
}
程序将打印第一个输出,等待十秒钟,然后打印最后一个输出。 我目前的功能如下:
void delay(unsigned int seconds) {
time_t old_time = time(NULL), target_time = old_time;
while((target_time - old_time) < seconds) target_time = time(NULL);
}
在等待给定的指定时间内,该功能非常准确。 但是,程序在延迟之前不会打印第一个输出 肯定不是我想要的:( 一旦程序启动,程序就会等待十秒,然后打印两个语句,而不是打印第一个语句,延迟,然后打印最后一个语句。
我是否因为对时间()的理解而错过了什么?或者这对某些人不起作用 原因?再次,为了澄清,我正在尝试解决延迟发生的问题,即使该函数出现在其他函数之后,也会发生在程序中的任何其他事件之前。 任何帮助我理解这一点的想法或建议都会很棒!
谢谢! :)