1.定义是什么?声明是什么?
A)int i;
B)extern int i;
定义就是编译器创建一个对象,为这个对象分配一个内存并取名字,就是变量名或对象名,并且这个变量和内存就被被捆绑在一起,不可分割,内存也不可改变,同时在一定区域(函数,全局)不可以重复定义一个变量;
声明有两个含义,一是告诉编译器这个变量已经和内存匹配了,下面的代码用到的变量是在别处定义的,声明可以出现多次;二是告诉编译器已经预定了这个变量,别的地方不能再用来做变量名
定义与声明的区别就是定义已经分配了内存,而声明没有。
2.register关键字
这个关键字请求编译器尽可能的吧变量存在CPU内部寄存器,而不是通过内存寻址操作访问,以提高效率。
3.寄存器——CPU的数据中转站
用于Cpu读取数据效率提高
4.static关键字
在函数中定义,用于函数执行结束后,变量数据不被销毁
5.c数据结构类型
6.命名规则!!!
以上命名规范要好好注意并严格执行,都是坑,深有体会
7.signed和unsigned
signed是有符号,可不写;unsigned是无符号
注意:无符号不包含负数;如char的范围是-128~127,unsigned char范围是0~127
注意范围溢出!!!
8.switch-case语句
按执行频率排case!!
case后加break;除非有意不加
加上default:break;
9.while(1)死循环
妙用
while(1)
{
if('#'=GetInputChar())
{
break;//指定情况让程序停下来
}
}
10.break和continue
break表示停止本层循环
continue表示停止本次循环
11.循环写法的注意点
1.长循环放里面,短循环放外面,提高cpu效率
2.推荐半开半闭写法
3.循环尽可能短
4.控制在3层嵌套循环
12.禁用goto语句
13.typedef
typedef是给已经存在的饿数据结构换一个名字(不是变量!)
typedef不支持拓展,下面举例
14.#define 宏定义
E可编译
F不可以
因为#define作用是替换,而typedef不是替换,且不支持拓展
15.注释规范要求
16.常见优先级问题
17.函数写法规范
2.每个函数结束后以及每个文件结束之后都要加上几行空行
3.变量定义与函数语句之间加上空行
6.用缩行显示程序结构,使排版整齐,缩进量统一使用4个字符(用sublime text3编写嘻嘻)