1、printf 函数输出问题

printf 函数并不会直接将数据输出到屏幕,而是先放到缓冲区中,只有一下三种情况满足,才会输出到屏幕。
1) 缓冲区满
2) 强制刷新缓冲区 fflush(缓冲区遇到\n会自动刷新)
3) 程序结束时

运行printf可执行程序时,我们发现,它会“先执行”sleep(2)再打印hello。注意先执行我们打了双引号的,其实并不是先执行了sleep(2)。程序执行printf时将需要输出的字符放到了缓冲区中了,此时由于缓冲区没有满,也没有刷新缓冲区,程序也没有结束,所以才没有把缓冲区中的字符输出到屏幕上,执行完sleep时,由于程序要结束了,所以此时缓冲区自动刷新,将字符打到了屏幕上。
当我们在执行printf后刷新缓冲区的话,就会先把字符打印出来,再sleep(2),如下:

也可以在需要printf的语句后面加上\n,会自动刷新缓冲区。
在这里要说一下,exit(0)会先刷新缓冲区,再结束函数。而_exit(0)会直接结束函数,不会刷新缓冲区。
如下图所示:

会看见一个现象,程序休眠两秒后直接退出,没有打印字符。这也是exit与_exit的区别。

2、主函数参数介绍

int main( int argc, char* argv[], char* envp[])
(1) argc 参数个数
(2) argv 参数内容
(3) envp 环境变量
如下图对参数个数和参数内容的展示:

如下图打印环境变量

环境变量只是打印看一下 ,对我们(最起码是对我来说)现阶段学习关系不大。

printf函数与主函数问题相关推荐

  1. c语言实现函数给主函数中的指针赋值的方法

    //利用二维指针.自从学了c之后,还没怎么用过二维指针,这么算是记住了 /* c语言实现函数给主函数中的指针赋值的方法*/#include<stdio.h>void f (int **p) ...

  2. 飞思卡尔MC9S12X:CAN驱动函数在主函数中的应用

    飞思卡尔MC9S12X:CAN初始化配置 飞思卡尔MC9S12X:CAN发送配置 飞思卡尔MC9S12X:CAN接收配置 飞思卡尔MC9S12X:CAN驱动函数在主函数中的应用 关于CAN驱动的配置, ...

  3. 关于调用子函数给主函数指针分配内存

    典型的错误例子如下 在这个主函数的指针给子函数传递一个指针,而在子函数中形参有开辟了一块内存,此子函数的指针的内存里存储的地址与主函数是同一地址, 即主函数的指 针和子函数形参的指针都指向同一块内存的 ...

  4. C语言函数和主函数的调用

    在C语言中主函数在调用子函数时,会产生相应的栈去存放调用子函数时的值,当调用完毕时,调用子函数所生成的栈则立即销毁.主函数在调用子函数时如果为值传递时,则传过去的参数并不影响主函数中参数的值,如果采用 ...

  5. 自己编写出来的函数在主函数中的使用方法

    1.函数声明 1.1函数声明格式(函数原型后面加上分号) int max(int x,int y);        //完整清晰,参数意义明确 int max(int,int);            ...

  6. 初始化栈、入栈、出栈、栈空、数制转换函数和主函数,实现1348转换成8进制的功能。

    #include<stdio.h> //栈的顺序存储 #include<string.h> #include<stdlib.h> #include<mallo ...

  7. c语言 编译 flash,DSP-C2000 flash编程,自己定义的烧写函数在主函数中运行无法通过...

    2018-11-23 14:47:04 评论 提交评论 您好, 的确,Flash API 函数的调用必须在 RAM 中执行.对于 Flash API 函数具体的调用方法,可以参考 ControlSUI ...

  8. python一定要有主函数_Python主函数从不调用其他函数?

    我有一个作业,创建一个基本的计算器程序,有加减,乘法和除法作为选择.Main应该调用菜单,菜单应该显示选项,并且在显示应答之后,程序应该返回菜单.在 当我运行它时,菜单会正确显示并提示我选择数学运算, ...

  9. 【Android 性能优化】应用启动优化 ( 安卓应用启动分析 | ActivityThread 主函数分析 | 应用初始化 | 启动优化项目 )

    文章目录 一. 应用入口函数 ActivityThread 主函数 main 二. ActivityThread 类 attach 方法 ( 应用加载 ) 三. ActivityThread 类 ha ...

最新文章

  1. python gc内存_禁用 Python GC,Instagram 性能提升10%
  2. NYOJ 76 超级台阶
  3. neo4j springboot 日志_Springboot2.3集成neo4j的过程和踩坑记
  4. cmail服务器安装后无法登录的解决办法
  5. 在 Ubuntu 18.04 上安装 Python 3.7
  6. win32汇编 多线程编程与事件
  7. 基于kali linux 跑字典暴力破解wifi教程
  8. mybatis-plus自定义sql分页
  9. 后端MultipartFile接收文件转Base64
  10. android adb login,adb
  11. 大三,在软件工程学习上的感悟
  12. 浏览器升级提示网站:《快乐浏览》
  13. 福禄克FLUKE OFP2-100-Q CH主要技术规格
  14. (一)软件测试的目的和定义
  15. php doc生成pdf文件怎么打开乱码,phpexcel 导出pdf文件乱码,该如何解决
  16. 天津科技大学计算机专业,天津科技大学计算机科学与信息工程学院介绍
  17. vimium 成神之路-键盘党的胜利
  18. python的100道简单习题,祝你成为python大神的小老弟
  19. Android根据图片名字获取图片ID
  20. sw模型生成urdf文件的详细流程

热门文章

  1. 设计模式-单件模式(Singleton pattern)
  2. JBoss5.x6.x 反序列化漏洞
  3. HarmonyOS之组件通用的XML属性总览
  4. Go 语言切片(Slice)
  5. 使用C++实现YUV格式图像与RGB格式图像之间相互转换
  6. WIN10 vnc 与Jeson ubuntu18.04 vncserver 远程控制的实现(亲测有效)
  7. 【Linux】一步一步学Linux——pgrep命令(123)
  8. 【Linux】一步一步学Linux——basename命令(34)
  9. [Qt教程] 第35篇 网络(五)获取本机网络信息
  10. css画钟表_纯Shading Language绘制HTML5时钟