c语言printf行缓冲问题

用printf()输出时是先输出到缓冲区,然后再从缓冲区送到屏幕上。

  1. 使用fflush(stdout)强制刷新。 2.缓冲区已满。 3.scanf()要在缓冲区里取数据时会先将缓冲区刷新。 4.\n,\r进入缓冲区时。 5.线程结束的时候,如果该线程里也有printf(....);
  2. 程序结束时。 为什么我这么写是输出1的 按理说应该不输出啊图片说明

gcc测试,没有输出,gcc

为什么这么多人,不写main的返回值呢,况且你还写的是int