分类: 嵌入式
2014-10-12 21:37:54
!!关键字
数据类型是指固定内存大小的别名char型一位short型二位int型四位,变量是指一段实际连续存储空间的别名,通过申请变量可以使用存储空间。
局部变量的属性都是默认是auto的。auto只在栈上修饰局部变量。
同样register也只在局部变量用。在栈上每次变量都会被释放。静态数据区不在栈上,所以处在静态数据区的变量不会被释放,只会被初始化一次。寄存器申请不一定成功,但寄存器存储快,实时性非常重要的时候,要用寄存器变量。&是获取变量在内存的地址,用&取register地址会显错。
static在函数里面的作用域是全局的,static变量作用域只在同一个文件中。
if ……else可以嵌套使用,每个与最近邻配对。在真正的C里面是没有标准bool型,并不是1真0假的,而是用0非0 辩真假,固不要对bool型量进行比较。用if进行条件判断时,普通变量跟定值比较时,定值规定放在比较符号左边,防止==号写成=号后出现bug。由于计算机本身的离散特点float型变量不要直接进行0值比较,要比较需确定精度。
switch语句case语句中的值只能是整型或是字符型,switch只能是单值判断,如果条件是‘按片’判断时候得用if。case语句排列顺序:正常放前面异常放后面,按数字、字母顺序排列,default只用于处理真正默认情况。
while循环时要注意条件,以免进入死循环。continue语句只终止本次循环进入下次循环执行,需要跳出块(break)的语句只有循环及switch语句。do …… while(0)只执行一次,可以接受break语句操作块,巧用这个内容可以避免一些内存泄露。一般循环使用for语句比较简洁。
goto 的使用容易导致段错误,跳过内存释放执行语句造成程序崩溃。
void表示无,函数没有返回值时可以用,不接受sizeof求值的。不允许有void类型的变量,但允许有void*指针。
extern用于声明外部定义的变量和函数extern用于告诉编辑器用C方式编译。
sizeof是编辑器的内置指示符,不是函数;用于计算相应实体所占内存大小;sizeof的值在编译期就已经确定。sizeof后面可以接int,如:sizeof(int),也可以不加括号直接接数,如:sizeof a,足以证明sizeof不是函数。
!!数据结构入门
数据结构主要研究非数值计算程序问题中操作对象以及他们的关系。数据元素存在一定关系就叫结构。数据结构就是研究数据对象中数据元素之间的关系。
逻辑结构:集合结构(仅同属相同集合)、线性结构(一对一)、树形结构(一对多)、图形结构(多对多)
物理结构:顺序存储结构(连续存储单元)、链式存储结构(通过保存地址)如:指针的使用
数据元素组成数据基本单位,数据元素的集合就是数据对象,数据项就是组成数据元素的基本单位【数据-->数据对象-->数据元素-->数据项】
程序短并不代表步骤少,算法是特定问题求解步骤的描述,是解决问题方法和思想。算法5条特性:输入、输出、有穷性、确定性、可行性。
算法设计准则:正确性、可读性、健壮性、高性价比。
影响算法效率的主要因素:采用的策略和方法;问题输入规模;编译器产生的代码;计算机执行速度。
算法效率的度量——大O表示法:算法效率严重依赖操作数量;在判断时首先关注操作数量的最高次项;操作数量的估算可作为时间复杂度的估算。没特殊说明算法时间复杂度是指最坏复杂度。
算法的空间复杂度通过计算算法的存储空间实现。有时时间复杂度过大可以采取空间换时间。