前段时间用C语言写了个小的程序,也算是复习了下好久没有用的C语言。也是有好多的坑了,哈哈。

1.C语言的结构体

  结构体的命名最好能够做到规范。因为不同的  编译环境下,不是很规范的命名有时候会导致莫名其妙的错误,而且很难发现。所以最好是在源头上避免这种错误。

比如这样的方法命名:

struct _stu {
  char *line;
  struct _lnode *next;
}stu;

typedef struct _stu *LNodeStu;

注意下划线,有时候会有问题;

2.关于字符串、字符数组的操作

  善用#include<string.h>包里面的,strlen(), strcat(),等函数,会极大的加快干活效率;

3.关于内存泄露

  C语言中都是用malloc分配内存比较多,只要用了maloc的最后都要free(), 否则最后会导致内存泄露而且很难发现问题在哪里;

  free的原则是,malloc了多少,free就释放对应的那部分内存;

4.数组长度的计算

  特别是传入到函数中的数组,不能用 sizeof计算,用什么方法?是不是 strlen() 可以?

5. 字符串转为数字:

  sprintf() 很好用;

C语言细节注意的更多相关文章

  1. C语言细节——献给入门者(三)

    C语言细节——献给入门者(三) >>主题:关于强制类型转换 先来瞎扯下强制类型转换,c语言有很多数据类型,long,short,int,float,double,bool,char等等.当 ...

  2. C语言细节——献给初学者(二)

    C语言细节——献给初学者(二) 主题  循环运用+选择判断 C语言循环有for和while/do...while: 选择判断有:if...else和switch...case 在循环中需要注意搭配br ...

  3. C语言细节——献给入门者(一)

    C语言细节——献给入门者(一) 主题  输入输出需要注意的细节 首先我们要知道大致有scanf(),printf(),getchar(),putchar(),gets(),puts()这几种输入方式. ...

  4. C语言细节总结笔记

    C语言细节总结笔记 */--> C语言细节总结笔记 Table of Contents 1. 三步异或法交换数字 2. 做差法交换数字 3. 按n位置位 4. 求余求商求积 5. 辗除法求最大公 ...

  5. [转载] C语言细节,写的非常棒!

    这篇文章主要讨论C语言细节问题.在找一份工作的时候,语言细节占的比例非常小,之前看某个贴着讨论,估计语言细节在面试中,占了10%的比重都不到,那为什么还要研究C语言的细节呢,我觉得有三个原因促使我总结 ...

  6. 程序员之---C语言细节12(指针和数组细节,&quot;//&quot;的可移植性说明)

    主要内容:指针和数组细节,"//"的可移植性说明 #include <stdio.h> int main(int argc, char **argv) { int a[ ...

  7. 程序员之---C语言细节19(来找茬,由/* */ 引起的凝视错误)

    主要内容:由/* */ 引起的凝视错误 有4处凝视错误 #include <stdio.h> #define N 10 //使用以下宏定义的凝视 #define BSC // #defin ...

  8. C语言细节笔记2

    C语言常见问题笔记:    1. 指针的声明     char * p1, p2;  p1 是一个指向char类型的指针,而p2是一个char类型变量  这是由于 * 并不是基本类型的一部分,而是包含 ...

  9. C语言细节笔记1

    /******************************************************************************* ——笔记 1. 函数申明的书写. 可以 ...

随机推荐

  1. python 之 赋值和拷贝(你真的了解吗)

    现象:先上一段代码. >>> import copy >>> a = [1,2,3,4,['a','b']] >>> b = a >> ...

  2. Nginx的安装与基本应用

    web服务器软件IIS (windows底下的web服务器软件) Nginx (Linux底下新一代高性能的web服务器) Tengine www.taobao.com 这是淘宝 Apache (Li ...

  3. hdu3535(AreYouBusy)

    题目链接:传送门 题目大意:有 n 组任务,m 个体力,每组任务有 k 个,分类为 f,每个任务花费 x 体力,得到 y 开心值,求最大开心值,若不能完成输出-1 分类为 0:这一组中的 k 个任务至 ...

  4. JavaScript -获取屏窗与视窗、文档宽高

    实例:1920*1080的电脑屏幕 1.获取窗口中的文档显示区域宽高 clientw = window.innerWidth; //1920(包含滚动条) clienth = window.inner ...

  5. Scala学习之For、Function、Lazy(4)

    1.for的使用 for的使用在各种编程语言中是最常见的,这里只是聊聊for在Scala中的表现形式,由于Scala语言是完全面向对象的,所以直接导致for的不同呈现,下面举几个例子说明一下 obje ...

  6. 记录--常用的linux命令

    mysql event /*查询event是否开启(查询结果Off为关闭 On为开启)*/ show variables like '%sche%'; /*开启/关闭命令(1开启--0关闭)*/ se ...

  7. Understanding Tensorflow using Go

    原文: https://pgaleone.eu/tensorflow/go/2017/05/29/understanding-tensorflow-using-go/ Tensorflow is no ...

  8. 系统根据用户cookies,为用户打上各种标签

    DSP营销学院_品友学院 | 品友推广官网 http://e.ipinyou.com/school_article40.html 智能算法+动态出价=最大发挥推广费用的价值 针对每一个曝光进行甄别和竞 ...

  9. 更新设置api

    8.8 更新设置 API Elasticsearch允许在elasticsearch.yml文件中指定各种参数来调优.但你应该把这个文件当做 默认设置,可以在运行时通过Elasticsearch RE ...

  10. for...in循环取Json数据

    var result = { "Tables":{ "B2B_DS_ORDERMX0":{ "ordernum":"tables- ...