C语言细节注意
前段时间用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语言细节注意的更多相关文章
- C语言细节——献给入门者(三)
C语言细节——献给入门者(三) >>主题:关于强制类型转换 先来瞎扯下强制类型转换,c语言有很多数据类型,long,short,int,float,double,bool,char等等.当 ...
- C语言细节——献给初学者(二)
C语言细节——献给初学者(二) 主题 循环运用+选择判断 C语言循环有for和while/do...while: 选择判断有:if...else和switch...case 在循环中需要注意搭配br ...
- C语言细节——献给入门者(一)
C语言细节——献给入门者(一) 主题 输入输出需要注意的细节 首先我们要知道大致有scanf(),printf(),getchar(),putchar(),gets(),puts()这几种输入方式. ...
- C语言细节总结笔记
C语言细节总结笔记 */--> C语言细节总结笔记 Table of Contents 1. 三步异或法交换数字 2. 做差法交换数字 3. 按n位置位 4. 求余求商求积 5. 辗除法求最大公 ...
- [转载] C语言细节,写的非常棒!
这篇文章主要讨论C语言细节问题.在找一份工作的时候,语言细节占的比例非常小,之前看某个贴着讨论,估计语言细节在面试中,占了10%的比重都不到,那为什么还要研究C语言的细节呢,我觉得有三个原因促使我总结 ...
- 程序员之---C语言细节12(指针和数组细节,"//"的可移植性说明)
主要内容:指针和数组细节,"//"的可移植性说明 #include <stdio.h> int main(int argc, char **argv) { int a[ ...
- 程序员之---C语言细节19(来找茬,由/* */ 引起的凝视错误)
主要内容:由/* */ 引起的凝视错误 有4处凝视错误 #include <stdio.h> #define N 10 //使用以下宏定义的凝视 #define BSC // #defin ...
- C语言细节笔记2
C语言常见问题笔记: 1. 指针的声明 char * p1, p2; p1 是一个指向char类型的指针,而p2是一个char类型变量 这是由于 * 并不是基本类型的一部分,而是包含 ...
- C语言细节笔记1
/******************************************************************************* ——笔记 1. 函数申明的书写. 可以 ...
随机推荐
- vmware 虚拟机下 ubuntu 与主机共享锐捷
一直以来.想要学习 linux ,在 vm 虚拟机下安装了 ubuntu 系统. 可是这个系统并不能上网.原因就是 vm 虚拟机的虚拟网卡会和锐捷冲突.锐捷会检測到多网卡,断开网络,所以不得不禁用 v ...
- Eclipse虚拟内存不足【Eclipse中虚拟内存设置】
Eclipse最近在做J2EE项目中 发现老是出现虚拟内存不足的提示 前2天去加了根内存 问题同样存在 为了让我在写代码时 不在出现那讨厌的内存不足的提示 也为了 不让那破机器再卡住 今天找到了解决方 ...
- python数据类型及运算符
python 的数据类型:数字.字符串.元组.列表.字典 type(a) 查看a的类型 数字: 整形int:-2 **32 ~+2**32 次方 长整形 a=123L 浮点float 复数型 - ...
- IntelliJ中的main函数和System.out.println()快捷输入方式
转自:https://blog.csdn.net/assassinsshadow/article/details/73557375 main快捷输入 psvm System.out.println() ...
- 前端代码tomcat下简单部署
软件 filezilla [ftp] + visionapp Remote Desktop[远程桌面] (前提:前后端代码分离,如前端angular实现) ftp上传到机器{软件 filezill ...
- 170306、wamp中的Apache开启gzip压缩提高网站的响应速度
一个网站的响应速度决定该网站的人气和质量,所以wamp配置的服务器也需要支持giz压缩来提高网站的响应速度,如何开启wamp的gzip压缩呢,经过在网站查找资料结合自己服务器中的配置,现在将这个方法分 ...
- 《JAVA多线程编程核心技术》 笔记:第七章:拾遗增补
一.线程的状态 1.1 状态种类及理解:(一共6个) 文字说明和理解: NEW状态:线程实例化后还从未执行start()方法时的状态: RUNNABLE状态:线程进入运行的状态: TERMINATED ...
- Eclipse Spring Tool Suite插件安装
目录 Eclipse Spring Tool Suite插件安装 Eclipse Spring Tool Suite插件安装 1.登录网址:http://spring.io/tools/sts/all ...
- 微软企业库验证 Validations
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using S ...
- Json对象与Json字符串的转化
1.jQuery插件支持的转换方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 2.浏览器支持的转 ...