C语言培训01

  今天开始了C语言培训的第一天,对于C语言我估计还停留在大一学C语言编程设计那个水平,对于C语言中的指针以及结构体等等那是很迷惑,所以后面就放弃了c,C++学习,果断转让C#门下,唉,可惜啊找到一个做C语言开发的职位,木有办法,只能从头学习C语言了。

  今天老师讲的也不是很多,主要是讲一些低级错误案例,看似低级的错误也不容易发现,以至于在产品上线以后造成更大的经济损失。今天主要分为五个大部分来讲解,通过实际中的低级错误案例,来学习如何避免这些错误。

  1. 内存与消息:这一部分是我最讨厌的,特别是指针,每次都搞的头很大,也很难理解。这一部分还涉及内存的申请,分配和释放,还有一些堆栈相关知识,需要特别注意的地方有一下几点:
    1:每次申请内存,都有判断内存释放分配成功
    2:函数退出时,必须把申请的内存释放掉
    3:使用指针之前必须判断指针的有效性,杜绝使用空指针
    4:分配好的内存指针也有初始化
    5:返回指针数据时不能返回堆栈中的地址
    6:内存释放掉以后,应该把指针设置为NULL.
  2. 数据类型强制转换
    1:内存越界()
    2:结构体字节对齐
    3:大端(一般指开发平台例如windows,linux),小端(开发板,一些硬件设施)之间转换
  3. 循环变量
    1:变量务必初始化
    2:使用循环变量,尽量不使用uchar类型
  4. 定义,结构体使用
    1:栈空间是有限的,用完记得释放
    2:局部变量(数组)大小不超过1K,全部局部变量大小不超过4K
  5. 运算符使用
    1:建议不使用默认优先顺序,一定加括号,不要挑战记忆的极限
    2:加法,减法,乘法要注意结果,不要溢出

    还有重要的一点:函数的入参值,指针以及函数的返回值 在使用之前都务必要检查其合法性。

原文地址:https://www.cnblogs.com/lemonloves/p/2935696.html