嵌入式初学-C语言-六

#内容较少但是必备的知识#

C语言程序设计结构

C语言设计的核心(灵魂)

程序 = 数据结构 + 算法

算法:对于问题解决的方法思路或者步骤

算法的特征:

        有穷性:问题需要在有限的步骤内完成

        可行性:解决步骤和方法思路必须要切实可行

        确定性:每一个代码指令要有明确的功能含义

算法的描述:流程图

C语言程序设计的设计结构

三大结构:

        顺序结构

        分支(选择)结构

        循环结构

顺序结构

说明:各操作是按先后顺序执行的。是最简单的一种基本结构。这个也是默认的结构。

流程图:

选择结构

说明:又被称之为分支结构,根据条件是否成立,选择对应的操作。

流程图:

循环结构

说明:又被称之为重复结构

       当型循环

特点:先判断条件,后执行语句,语句可能一次也得不到执行

流程图:

        直到型循环

特点:先执行语句,后判断条件,语句至少执行一次

C语言的语句

分类

        控制语句:while.. for.. if..else... ...

        函数调用语句:scanf(...);

        表达式语句:b=3; 空语句:;

        复合语句:{...} 

        关注:输入输出语句(printf()/scanf())

输入输出缓冲机制

概述

  缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间, 这些存储空间用来缓冲输入 或者输出的数据,这部分预留的空间叫做缓冲区。缓冲区根据其对应的是 输入设备还是输出设备,分为输入缓冲区和输出缓冲区。

为什么要有缓冲区

        1)减少IO设备的操作

        2)提高计算机的运行速度。

比如:我们从磁盘里读取信息,先把读出的数据放在缓冲区,计算机再直接从缓冲区中取数据,等缓 冲区的数据取完后再去磁盘中读取,这样就减少磁盘的读写次数,再加上计算机对缓冲区的操作大大 快于磁盘的操作,故应用缓冲区可大大提高计算机的运行速度

缓冲区的类型

全缓冲:

        当填满缓冲区之后,才会进行实际IO操作。 比如 对磁盘文件的读写。 ---window 全缓冲大小 4096字节 linux 全缓冲大小 1024字节

行缓冲:

        当在输入和输出中遇到换行符时,执行真正的IO操作,也就是冲刷缓冲区的数据。比如键盘 输入数据

不带缓冲:

        也就是不进行缓冲,标准出错情况stderr是典型代表,这使得出错信息可以直接尽快地显示 出来。

引发缓冲区的刷新

        1、遇到换行符\n

        2、缓冲区满(溢出)

        3、执行fflush(stdout),手动刷新缓冲区

原理实现

说明:

 录入:

        输入输出操作的内部采用的缓冲机制,也就是当我们用scanf()输入数据时,并不是直接将键盘 录入的数据存储到内存变量中,而是系统会先去输入缓冲区查看是否有符合类型的数据,如果存在将 直接输入缓冲区中的数据到内存变量,此时就不用键盘录入,否则猜需要键盘录入复合类型的数据。

 输出:

        相同道理,当我们使用printf()输出数据时,也并不是直接将内存变量存储的数据输出到输出设 备,而是先存储到输出缓冲区,当输出缓冲区被充满,或输出缓冲区中出现换行符,或者执行 fflush(),才会将输出缓冲区的数据输出到标准输出设备。(打印机也是,我们测试用的是控制台显示 终端)

  • 29
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值