C语言基础-潜规则篇
文章平均质量分 75
ipmux
这个作者很懒,什么都没留下…
展开
-
C潜规则篇之代码规范
很多初学者写代码只关注语法正确,而不在乎代码书写的规范和风格,导致写出来的代码乱七八糟,不但别人连自己都不愿多看一眼。这种代码难以维护,难以重用,更无法修改,功能再好也没人敢用。因此良好的代码规范不是可有可无,它不仅起美化作用,更重要的是使代码易阅读,易维护,提高工作效率。那么怎样给代码美容,使其看起来更“职业”呢? 除了上篇符号命名法外,前辈们在长期编程实践中总结出很多不成文的规范,教原创 2013-12-13 13:40:00 · 1263 阅读 · 0 评论 -
C潜规则篇之如何实现平台无关
或许大家都有这样类似经历:要在某平台上开发一个模块,很幸运找到了功能类似的参考代码,拿来修改却发现它是基于其它平台,底层接口完全不同,且全都嵌在代码里,要一个个改。面对一堆编译错误,用着麻烦,丢了可惜,真成了“鸡肋”。 C代码复用不象JAVA那么简单,一般都要经过移植才能在不同平台运行。但如果事先把平台相关部分集中在一起,形成平台隔离层,C程序也能做到代码基本平台无关。判定C代码级平台无原创 2013-12-13 16:06:53 · 2573 阅读 · 0 评论 -
C潜规则篇之符号命名
C语言中如果能从名字看出符号(变量函数等)的类型和含义,就能一定程度上提高代码可读性,为此前人也总结出很多技巧,如著名的匈牙利命名法。不过每个人的盲点和兴奋点不同,预防与激励方法也不可能相同,所以各种命名法都有争议。这里只提醒大家注意好命名的作用,有意识地总结适合自己的方法,从而提高工作效率。下面是个人习惯,供参考: 1)宏定义和枚举常数全部用大写字母命名,在复合词里用下划线隔开每个单词原创 2013-12-13 13:21:09 · 1307 阅读 · 0 评论 -
C潜规则篇之保持句法简单
有些程序员总喜欢使用精简而紧凑的C语句,以为可以提高程序效率,或者单纯只为显示自己掌握高深的语法,如: return ((int)atou(str+((*str == ‘+’)?1:0))); 这种写法简直让人抓狂,难道写点能让人看懂的代码很羞耻么?“? :”运算符效果等同于if-else语句,完全能分解得更直观: if(*str == '+') st原创 2013-12-13 14:52:54 · 795 阅读 · 0 评论 -
C潜规则篇之代码书写
代码书写过程中一些不好的习惯,也可能导致语法错误,代码丢失等问题,使得编码和维护的效率低下。下面几点虽然都是一些很细节的地方,但细节决定命运,编程中从细节处完善,养成好的习惯,也可以长久受益。修改前手动备份 修改代码时经常碰到这种情况,对某模块做修改,改了一半发现原来构想错误,想退回原点,却不幸忘记刚才修改了哪些地方。辛苦大半天,回不到解放前。即使现在有代码管理系统,一些小规模的调试原创 2013-12-13 18:15:55 · 954 阅读 · 0 评论 -
C潜规则篇之防止重定义
C程序编译时常出现类似xxx redefinition错误,除了模块间的命名冲突(命名污染及static),问题多数与头文件管理有关。大型C工程的头文件管理很麻烦:C源文件往往包含很多头文件,头文件又包含其他头文件,形成复杂的嵌套包含;C没有严格限定源文件和头文件的功能边界,二者都可以包含全局变量和函数等实体定义。这都可能导致类型或实体定义被重复包含和展开,使编译器抛出重定义错误。 解决原创 2013-12-13 18:34:13 · 10645 阅读 · 0 评论 -
C潜规则篇之API接口
C语言模块化编程的基础是:把所有要隐藏的数据放在C文件中,所有要暴露给用户的信息放在API头文件,作为库和上层应用的桥梁。所以API头文件中的函数声明、数据类型等会被库自身和调用者共享。这就要确保库和上层应用的编译环境对它们有一致的解析,下列可能导致解析不一致的元素要格外注意: 1)char、enum这两个元素会被编译选项改变属性,因此最好不要直接出现在API接口中,如果非要包含,要注意原创 2013-12-13 22:30:29 · 3167 阅读 · 1 评论 -
C潜规则之保持语法简单
有些C语言语法比较生僻,且有其他常规方式替代,建议尽量避开这些装x的写法,少折腾自己,也少折磨别人。下面是个人主观感觉,仅供参考。原则是简单比复杂好。数组作函数参数 数组作为函数的参数传递时,会退化成一个地址,也就是说你写的是数组array[],编译器把它作为地址&array处理,既然如此不如直接写&array清楚而明确。结构体直接赋值 struct TEST{原创 2015-08-26 15:51:32 · 1254 阅读 · 0 评论