C语言的艺术
1、总结C语言的一些实用技巧、混淆点
2、编码规范,安全编码
Summer_ZJU
如果你不去努力,就没有资格抱怨
展开
-
C语言的艺术之——函数
好记性不如烂笔头o(^▽^)oC语言的艺术之函数C语言的艺术之函数1一个函数仅完成一件功能2重复代码应该尽可能提炼成函数3避免函数过长新增函数尽量不超过50行非空非注释行4避免函数的代码块嵌套过深新增函数的代码块嵌套不超过4层5可重入函数应避免使用共享变量若需要使用则应通过互斥手段关中断信号量对其加以保护6对参数的合法性检查由调用者负责还是由接口函数负责应在项目组模块内应统一规定缺省由调原创 2016-09-20 07:32:32 · 2599 阅读 · 2 评论 -
C语言的艺术之——头文件
好记性不如烂笔头o(^▽^)o 刚工作的时候,对于强调编程规范、编程理念,总是不以为然,等经历了一两个项目以后才发现其重要性,不禁感慨,C语言真是一门艺术。这里计划写一个系列的文章: 《C语言的艺术之——头文件》 C语言的艺术之——函数 C语言的艺术之——标识符命令与定义 C语言的艺术之——变量、常量和宏 C语言的艺术之——质量保证 C语言的艺术之——程序效率 C语言的艺术之——注释原创 2016-09-19 08:14:28 · 6498 阅读 · 1 评论 -
C语言宏定义的使用
宏定义采用define关键字进行定义,是简单的字符串替换,主要分有参数和无参数两种。这里就平常碰到的使用方法做一个总结,方便以后查看。1、#define MAX_NUM 1000 普通宏定义,最大值为10002、#define NULL_PTR ((void*)0) 定义空指针3、用宏定义断言(assert)#define ASSE原创 2016-04-16 23:52:17 · 1377 阅读 · 0 评论 -
OJ - 无题
题目描述: 有两个无刻度的量杯A和B,其容积分别为m升和n升(要求m>n),现在允许用量杯从水缸里取水或将水倒回水缸里,而且两个量杯中的水也可以相互倾倒,试设计计算机程序求出在m升的量杯中准确量得k升所需的最少操作步数。(每一个取水或倒水都算一个操作步数),如果认为量不出k升的话,返回-1。实现以下接口: int MinSteps(int m, int n, int k) 输入参数:原创 2016-06-27 07:16:01 · 1375 阅读 · 0 评论 -
C中各关键字总结
这里主要就平常中用到的常用关键字进行总结,便于更全面的理解其在代码中的意图。static关键字const关键字C语言static关键字static可以用来修饰局部变量、全局变量、函数 1、局部变量:原先存在栈中,生命周期语句执行完毕便结束了。现在存放到静态数据区,生命周期持续到整个程序执行结束。但并没有改变作用域,还是仅限于该语句块。并且只在初次运行的时候进行初始原创 2016-09-11 18:33:29 · 1558 阅读 · 1 评论 -
零碎知识点总结
这里总结一些关于语言、数据结构的一些基础知识。好记性不如烂笔头o(^▽^)o零碎知识点总结零碎知识点总结数组和指针的区别指针数组和数组指针hashmap 和 hashtable 的区别链表和数组的区别内存字节怎么对齐为什么要对齐new和malloc的区别抽象类和接口的区别桥接模式和适配器模式的区别数组和指针的区别1、计算内存容量上的差别 当数组作为函数的形参的时候,该数组自动退化为原创 2016-09-15 17:57:13 · 816 阅读 · 0 评论 -
gcc编译基本用法
gcc的基本用法命令格式:gcc [选项] [文件名]编译的四个阶段:-E:仅执行编译预处理; -c:仅执行编译操作,不进行连接操作;-S:将C代码转换为汇编代码; -o:指定生成的输出文件。–c是使用GNU汇编器将源文件转化为目标代码之后就结束,在这种情况下,只调用了C编译器(ccl)和汇编器(as),而连接器(ld)并没有被执行,所以输出原创 2016-05-03 08:11:34 · 63980 阅读 · 0 评论 -
VIM 命令学习记录
VIM的命令挺多,网上一搜也有很多总结,一下子看那么多也记不住,还是要在实战中去学习,以下是自己平常用到的一些命令,记录一下。/ 后面输入字符进行搜索* 向后搜索光标所在位置的单词# 向前搜索光标所在位置的单词n和N可以继续向后或向前搜索匹配的字符串:set hlsearch 高亮所有匹配字符串:nohlsearch 临时关闭,他的缩写形式是::noh:原创 2016-05-16 07:58:21 · 663 阅读 · 0 评论 -
container_of学习
container_of学习定义定义1:#define container_of(ptr, type, member) ({ \ const typeof(((type *)0)->member) * __mptr = (ptr); \ (type *)((char *)__mptr - ((unsigned long) &((type *)0)->member)原创 2016-07-15 08:16:45 · 1103 阅读 · 0 评论