C语言培训-01
今天开始了C语言培训的第一天,对于C语言我估计还停留在大一学C语言编程设计那个水平,对于C语言中的指针以及结构体等等那是很迷惑,所以后面就放弃了c,C++学习,果断转让C#门下,唉,可惜啊找到一个做C语言开发的职位,木有办法,只能从头学习C语言了。
今天老师讲的也不是很多,主要是讲一些低级错误案例,看似低级的错误也不容易发现,以至于在产品上线以后造成更大的经济损失。今天主要分为五个大部分来讲解,通过实际中的低级错误案例,来学习如何避免这些错误。
- 内存与消息:这一部分是我最讨厌的,特别是指针,每次都搞的头很大,也很难理解。这一部分还涉及内存的申请,分配和释放,还有一些堆栈相关知识,需要特别注意的地方有一下几点:
1:每次申请内存,都有判断内存释放分配成功 2:函数退出时,必须把申请的内存释放掉 3:使用指针之前必须判断指针的有效性,杜绝使用空指针 4:分配好的内存指针也有初始化 5:返回指针数据时不能返回堆栈中的地址
6:内存释放掉以后,应该把指针设置为NULL. - 数据类型强制转换
1:内存越界() 2:结构体字节对齐 3:大端(一般指开发平台例如windows,linux),小端(开发板,一些硬件设施)之间转换
- 循环变量
1:变量务必初始化 2:使用循环变量,尽量不使用uchar类型
- 定义,结构体使用
1:栈空间是有限的,用完记得释放 2:局部变量(数组)大小不超过1K,全部局部变量大小不超过4K
- 运算符使用
1:建议不使用默认优先顺序,一定加括号,不要挑战记忆的极限 2:加法,减法,乘法要注意结果,不要溢出
还有重要的一点:函数的入参值,指针以及函数的返回值 在使用之前都务必要检查其合法性。