static
- static 修饰全局变量
- 表示这个全局变量只能在当前的.c文件使用,如果不加static,外面的.c也可以使用;
- 优点使得模块内部的全局变量设计更优雅;
- 一但我们的全局变量加上了static,就不用担心这个全局变量会在其它的.c模块里面被使用或被修改;
- 减少了维护压力,int g_a;考虑其它的外部是否使用;
- static 可以修饰函数
- 有可能被外部的.c使用,如果你加上static来修饰
- 那么只能在当前的.c使用,那么这个函数就成了模块内部函数
- 如果说一个函数只在内部使用,一定要加上static
- 模块内部使用的全局变量或函数,一定要加上static;
const
- a变量里面存放了10,const在编译的时候强制到编译错误,如果试图修改这个值
- 这俩个参数在函数内部是不会被修改的,如果真的不需要修改参数,那么更优雅;
- const 修饰指针,复杂的结构体,传递参数,传递指针性能更好;
- const 类型*变量;不能通过变量来改变内存的内容;
- 不能改变内容的指针变量;
- 指针变量的内容不能改变;
- 不能通过指针变量来变它指向的内存数据;
typedef
typedef 类型定义,制造新的类型
- 常见的定义
goto
- goto: 这条语句是把我们的指令指针拨动到对应的位置;
- goto 代码位置;
- 1 定义代码位置;
- 2 goto 代码位置;
- goto 是无逻辑的强制跳转,所以不能滥用;
- 建议少使用;
- goto 是可以让程序变得更优雅的;
- 使用能让程序变得更优雅的goto;
- 优雅的goto,打开文件a,开文件b,打开文件c,打开文件d
- 只有这4个文件都成功打开了,我们才算初始化成功;
- 使用goto后