9.#include
①include是一个预处理指令,不是语句,写完不用加分号;
②#include < >是包含系统提供的头文件,#include " " 是包含自己写的文件;
③文件包含的实质:文件包含的功能是把指定的文件内容插入该命令行位置取代该命令行,从而把指定的文件和当前的源程序文件连成一个源文件;
④作用:把要包含的文件的内容拷贝到当前书写include的地方;
⑤搜索文件顺序:——>当前目录——>编译器目录include——>找系统目录——>报错
⑥如果更改了编译器目录下的文件,再次运行还是没有改变。因为缓存原因,所以要清理有两种方法:
1)清空缓存: product ——>clean
2)手动清理缓存:/Users/apple/Library/Developer/Xcode/DerivedData/
⑦应用场景:
1)通过头文件来调用库功能。
在很多场合,源代码不便向用户公布,只要向用户提供头文件和二进制的库即可。
2)多文件编译。
将稍大的项目分成几个文件实现,通过头文件将其他文件的函数声明引入到当前文件。
3)头文件能加强类型安全检查。
如果某个接口被实现或被使用时,其方式与头文件中的声明不一致,编译器就会指出错误,这一简单的规则能大大减轻程序员调、改错的负担。
10.模块化编程
①模块化变成的概念:
我们把功能相似的函数封装到不同的文件中
②实现
.c C语言的源文件
.h (header) 头文件:
1) 方法的声明,但是不能实现方法;
2) 声明变量;
3) 声明结构体;
③好处
1)用的时候,只需要包含.h文件,对外隐藏源文件的实现;
2)团队的分工和协作;
3)可以吧功能细划分若干个模块;
④头文件的注意事项:
1)头文件中可以和C程序一样引用其他头文件,可以写预处理块,但不要写具体的语句;
2)可以声明函数,但不可以定义函数;
3)可以声明变量,但不可以定义变量;
4)可以“定义”一个宏函数。注意:宏函数很像函数,但却不是函数。其实还算是一个声明;
5)结构的定义、自定义数据类型一般也放在头文件中;
6)多文件编程时,只能有一个文件包含main()函数,因为一个工程只能有一个入口函数。我们吧包含main()函数的文件称为主文件。
7)为了更好的组织各个文件,一般情况下一个.c文件对应一个.h文件,并且文件名要相同,例如fun.c和fun.h;
8)头文件要遵守幂等性原则,即可以多次包含相同的头文件,但效果与包含一次相同;
9)防止重复包含的措施;
11.进制
①2进制最右侧为低位,把10进制转换为2进制的方法为:除二取余法,高位补0,将得到的余数倒序得到的序列就是二进制表示形式;
②2进制——>16进制,口诀:4合1,把一个二进制数,整数部分从右向左,四位合成1位,小数部分从左向右,四位合成1位;
③16进制——>2进制,将16进制每一位拆成二进制位;