printf函数与主函数问题
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函数与主函数问题相关推荐
- c语言实现函数给主函数中的指针赋值的方法
//利用二维指针.自从学了c之后,还没怎么用过二维指针,这么算是记住了 /* c语言实现函数给主函数中的指针赋值的方法*/#include<stdio.h>void f (int **p) ...
- 飞思卡尔MC9S12X:CAN驱动函数在主函数中的应用
飞思卡尔MC9S12X:CAN初始化配置 飞思卡尔MC9S12X:CAN发送配置 飞思卡尔MC9S12X:CAN接收配置 飞思卡尔MC9S12X:CAN驱动函数在主函数中的应用 关于CAN驱动的配置, ...
- 关于调用子函数给主函数指针分配内存
典型的错误例子如下 在这个主函数的指针给子函数传递一个指针,而在子函数中形参有开辟了一块内存,此子函数的指针的内存里存储的地址与主函数是同一地址, 即主函数的指 针和子函数形参的指针都指向同一块内存的 ...
- C语言函数和主函数的调用
在C语言中主函数在调用子函数时,会产生相应的栈去存放调用子函数时的值,当调用完毕时,调用子函数所生成的栈则立即销毁.主函数在调用子函数时如果为值传递时,则传过去的参数并不影响主函数中参数的值,如果采用 ...
- 自己编写出来的函数在主函数中的使用方法
1.函数声明 1.1函数声明格式(函数原型后面加上分号) int max(int x,int y); //完整清晰,参数意义明确 int max(int,int); ...
- 初始化栈、入栈、出栈、栈空、数制转换函数和主函数,实现1348转换成8进制的功能。
#include<stdio.h> //栈的顺序存储 #include<string.h> #include<stdlib.h> #include<mallo ...
- c语言 编译 flash,DSP-C2000 flash编程,自己定义的烧写函数在主函数中运行无法通过...
2018-11-23 14:47:04 评论 提交评论 您好, 的确,Flash API 函数的调用必须在 RAM 中执行.对于 Flash API 函数具体的调用方法,可以参考 ControlSUI ...
- python一定要有主函数_Python主函数从不调用其他函数?
我有一个作业,创建一个基本的计算器程序,有加减,乘法和除法作为选择.Main应该调用菜单,菜单应该显示选项,并且在显示应答之后,程序应该返回菜单.在 当我运行它时,菜单会正确显示并提示我选择数学运算, ...
- 【Android 性能优化】应用启动优化 ( 安卓应用启动分析 | ActivityThread 主函数分析 | 应用初始化 | 启动优化项目 )
文章目录 一. 应用入口函数 ActivityThread 主函数 main 二. ActivityThread 类 attach 方法 ( 应用加载 ) 三. ActivityThread 类 ha ...
最新文章
- python gc内存_禁用 Python GC,Instagram 性能提升10%
- NYOJ 76 超级台阶
- neo4j springboot 日志_Springboot2.3集成neo4j的过程和踩坑记
- cmail服务器安装后无法登录的解决办法
- 在 Ubuntu 18.04 上安装 Python 3.7
- win32汇编 多线程编程与事件
- 基于kali linux 跑字典暴力破解wifi教程
- mybatis-plus自定义sql分页
- 后端MultipartFile接收文件转Base64
- android adb login,adb
- 大三,在软件工程学习上的感悟
- 浏览器升级提示网站:《快乐浏览》
- 福禄克FLUKE OFP2-100-Q CH主要技术规格
- (一)软件测试的目的和定义
- php doc生成pdf文件怎么打开乱码,phpexcel 导出pdf文件乱码,该如何解决
- 天津科技大学计算机专业,天津科技大学计算机科学与信息工程学院介绍
- vimium 成神之路-键盘党的胜利
- python的100道简单习题,祝你成为python大神的小老弟
- Android根据图片名字获取图片ID
- sw模型生成urdf文件的详细流程
热门文章
- 设计模式-单件模式(Singleton pattern)
- JBoss5.x6.x 反序列化漏洞
- HarmonyOS之组件通用的XML属性总览
- Go 语言切片(Slice)
- 使用C++实现YUV格式图像与RGB格式图像之间相互转换
- WIN10 vnc 与Jeson ubuntu18.04 vncserver 远程控制的实现(亲测有效)
- 【Linux】一步一步学Linux——pgrep命令(123)
- 【Linux】一步一步学Linux——basename命令(34)
- [Qt教程] 第35篇 网络(五)获取本机网络信息
- css画钟表_纯Shading Language绘制HTML5时钟