C Primer Plus阅读--章节13-15

C Primer Plus阅读–章节13-15

C语言提供两种文件模式

  • 文本模式
  • 二进制模式

I/O级别

  • 底层I/O:使用操作系统提供的基本I/O服务。
  • 标准高级I/O:使用C的标准包和stdio.h头文件定义

putc()和getc()

  1. getc():从文件中读取一个字符
  2. getc():将字符写入文件

fseek()和ftell()的工作原理

  1. fseek():将光标移动到任意位置,如果正常则返回值为0,不正常的话返回值为-1
    • 第一个参数:FILE指针,指向待查找文件
    • 第二个参数:偏移量,必须是一个long类型的值(long一般等价为int),可以为正、负、0
    • 第三个参数:模式。(SEEK_SET、SEEK_CUR、SEEK_END)
      2.ftell():返回光标的偏移量,long类型
    • ftell(fp)

处理大文件的函数:fgetpos()和fsetpos()函数

标准I/O的工作原理

  1. 调用fopen()打开文件,创建缓冲区(读写模式下会创建两个缓冲区)及一个包含文件和缓冲区的数据结构。该结构通常包含一个指定流中当前位置的文件位置指示器,还包含错误和文件结尾的指示器,一个指向缓冲区开始处的指针,一个文件标识符和一个计数器(统计实际拷贝进缓冲区的字节数)
  2. 调用定义在stdio.h中的输入函数

setvbuf():设置缓冲区大小

二进制I/O

  1. fread()
  2. fwrite()

变量名和标记的名称可以相同(即命名空间不同,标记之间的命名空间相同,标记指的是结构体、Union和枚举类型)

typedef简介

与define类似,两者之间的不同:

  1. typedef创建的符号名只受限于类型,不能用于值。
  2. typedef由编译器解释,不是预处理器的工作。
  3. typedef比#define更加灵活

函数和指针

  • 函数指针通常用作另一个函数的参数,告诉函数该使用哪一个函数。
  • 函数指针:
    • 指向函数的指针存储这函数代码的起始处地址。
    • 声明一个函数指针时必须声明指针所指向的数据类型。要指明函数的返回值类型和形参类型。
void (*pf)(char *);//指向函数的指针,返回值类型为void,形参列表为char *类型

位字段

确定每个字段的宽度,以下结构宽度为4位,因此每一个字段只能表示0或者1

struct{
	unsigned int autfd:1;
	unsigned int bldfc:1;
	unsigned int undln:1;
	unsigned int itals:1;
}prnt;

对齐特征(C11)

  • _Alignof运算符:将变量指定为对应类型长度的进行对齐
size_t d_align = _Alignof(float);//假设d_align的值为4,float的对齐要求为4
_Alignas(double) char c1;
_Alignas(8) char c2;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想考北航的小刺猬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值