Closed. This question needs details or clarity. It is not currently accepting answers. Learn more
想改进这个问题吗?添加细节并通过editing this post澄清问题。
11个月前关闭。
换句话说:
有没有可能以某种方式延迟某条指令,比如printf,使它在执行的最后时刻执行?

最佳答案

我写了一个使用atexit的例子:

#include <stdio.h>
#include <stdlib.h>

void foo(void) {
    printf("\nDone!\n");
}

int main(void) {
    atexit(foo);
    for (;;) {
        int tmp = rand() % 100; // unseeded
        printf("%02d ", tmp);
        if (!tmp) break;
    }
    return 0;
}

像往常一样,您应该检查atexit()的返回值以检查错误。还要注意,使用_Exit()或异常进程终止(例如:除以零)终止程序不会调用atexit()调用中指定的函数。
Live demo
输出可以是(不是从ideone复制的)
18 42 02 00个
完成!

10-07 16:26