文件位置指针是一个整数,他用来记录下一次
对文件进行读写操作的时候开始位置到
文件头之间包含多少个字节
当从文件中读出n个字节或者向文件中写入n个字节
的之后文件位置指针都会自动向后移动n个
字节
可以在程序中使用函数察看或者修改文件位置
指针的数值
ftell函数可以察看文件位置指针的数值 ftell(p_file));
返回值就是当前位置指针的数值
rewind函数可以把文件位置指针的数值设置成0 rewind(p_file);
fseek函数可以把文件位置指针调整到文件中
fseek(p_file, 2, SEEK_SET);
任何位置上
可以采用三种办法指定文件中某个位置
三种方法的本质一样,都是需要指定一个基准
位置,然后指出目标位置到基准位置
之间的距离(如果目标位置在后则距离
是正的,否则是负的)
SEEK_SET 0 文件头作为基准位置
SEEK_CUR 1 当前位置指针位置作为基准位置
SEEK_END 2 文件尾作为基准位置
#define也是一个预处理指令
这个预处理指令可以用来给数字起名字
这些名字叫做宏
宏定义语句中要把宏名称写在前边
宏名称应该全用大写英文字母
宏定义语句里不要出现赋值操作符
宏名称里不能有空格
编译器会首先把程序中的宏名称替换成它所代表
的内容,然后再编译
在真正进行编译的时候宏名称已经不存在了
可以在gcc命令中使用-D选项定义宏
这种方法可以在编译的时候决定宏所代表的数字
宏还可以用来给一个计算公式起名字
计算公式里含有未知数字,使用宏的参数表示
这些未知数字
宏的参数没有类型
带有参数的宏采用两次替换的方式进行处理
函数可以有独立于其他函数的私有存储区而
宏不可以
因为宏没有自己的返回值存储区,所以如果希望
把宏当成数字来使用的话就需要把它编写
成一个表达式
宏同样没有形式参数
对宏参数的修改实际修改的是包含宏的函数内部
的存储区
因为宏没有自己的返回值所以不能保证优先
计算表达式中宏内部的操作符
所有写成表达式的宏都应该把表达式写在一对
小括号里,这样会强制优先计算宏内部的
操作符
因为宏没有形式参数所以不能保证优先计算参数
内部的操作符
宏表达式里所有代表数字的参数都应该写在一对
小括号里边,这样才能保证优先计算参数
内部的操作符
不要把自增自减的计算结果作为宏的参数使用,
宏内部如果多次使用这个参数则结果不确定
预习:
1.宏操作符
2.条件编译
3.多文件编程
4.结构体
作业:
1.编程根据用户提供的一个代表十六进制的
字符计算出对应的十进制数字并把结果打印
在屏幕上
(采用宏实现)
对文件进行读写操作的时候开始位置到
文件头之间包含多少个字节
当从文件中读出n个字节或者向文件中写入n个字节
的之后文件位置指针都会自动向后移动n个
字节
可以在程序中使用函数察看或者修改文件位置
指针的数值
ftell函数可以察看文件位置指针的数值 ftell(p_file));
返回值就是当前位置指针的数值
rewind函数可以把文件位置指针的数值设置成0 rewind(p_file);
fseek函数可以把文件位置指针调整到文件中
fseek(p_file, 2, SEEK_SET);
任何位置上
可以采用三种办法指定文件中某个位置
三种方法的本质一样,都是需要指定一个基准
位置,然后指出目标位置到基准位置
之间的距离(如果目标位置在后则距离
是正的,否则是负的)
SEEK_SET 0 文件头作为基准位置
SEEK_CUR 1 当前位置指针位置作为基准位置
SEEK_END 2 文件尾作为基准位置
#define也是一个预处理指令
这个预处理指令可以用来给数字起名字
这些名字叫做宏
宏定义语句中要把宏名称写在前边
宏名称应该全用大写英文字母
宏定义语句里不要出现赋值操作符
宏名称里不能有空格
编译器会首先把程序中的宏名称替换成它所代表
的内容,然后再编译
在真正进行编译的时候宏名称已经不存在了
可以在gcc命令中使用-D选项定义宏
这种方法可以在编译的时候决定宏所代表的数字
宏还可以用来给一个计算公式起名字
计算公式里含有未知数字,使用宏的参数表示
这些未知数字
宏的参数没有类型
带有参数的宏采用两次替换的方式进行处理
函数可以有独立于其他函数的私有存储区而
宏不可以
因为宏没有自己的返回值存储区,所以如果希望
把宏当成数字来使用的话就需要把它编写
成一个表达式
宏同样没有形式参数
对宏参数的修改实际修改的是包含宏的函数内部
的存储区
因为宏没有自己的返回值所以不能保证优先
计算表达式中宏内部的操作符
所有写成表达式的宏都应该把表达式写在一对
小括号里,这样会强制优先计算宏内部的
操作符
因为宏没有形式参数所以不能保证优先计算参数
内部的操作符
宏表达式里所有代表数字的参数都应该写在一对
小括号里边,这样才能保证优先计算参数
内部的操作符
不要把自增自减的计算结果作为宏的参数使用,
宏内部如果多次使用这个参数则结果不确定
预习:
1.宏操作符
2.条件编译
3.多文件编程
4.结构体
作业:
1.编程根据用户提供的一个代表十六进制的
字符计算出对应的十进制数字并把结果打印
在屏幕上
(采用宏实现)