深入理解C语言-05 语句

说到C语言的语句块,真是一堆血泪史。


第一大坑就是优先级。


刚工作那会儿,C的书没看几本,自信满满的认为C语言都会了,拿出搞ACM培养的豪情壮志,

代码倒是写得爽,却到处留坑。回过头来看,工程经验积累很重要。

什么是经验?经验就是对自己思维盲区的总结,对不良代码习惯的反思。


第一条: 不要相信自己的记忆,两个操作符的优先级请用()区分开。

比如:  x = y >> 3 + 2;    一定要写成  x= (y >> 3) + 2;

             x= *p++;   最好写成  x = *p; p++; // 需要照顾刚毕业的。尽量不要你为难我,我为难你。

多年的经验表明,多敲几个()的几秒钟,会节省几小时,甚至几周。


第二条: 条件语句中不能有=号。

虽然  while (x = 5,  x > 0) 写起来很牛,看起来的人就很累了。

更有 while (x = 1)导致的死循环。


第三条: 有符号无符号坚决不混用,实在要混用,优先转有符号数。


第四条:  switch的case 一定要加break;  不加的话,一定要加注释特别声明。


第五条: 坚决不要硬编码,字符串与常量一定要定义为const 变量或宏。

项目代码里面一大堆276,328的东西,会让后来人杀人的心都有了。


第六条:复杂类型一定用typedef依层次定义。

比如:

int* (*p)(int* (*pF)(int , char*), int *, char);

让人很难受。

改成下面则好理解得多。

typedef int* (*FUNC1_P)(int , char*);

typedef int* (*FUNC2_P)(FUNC1_P pF, int *, char);


第七条: 使用函数指针一定要加()。

加()会让别人更能理解这是一个函数调用。


第八条:函数长度尽量不要超过500行。(当然,为了性能优化,特意循环展开的,请加注释说明。)


第九条: 变量命名风格一致,语句尽量简单。


第十条: 变量使用前务必初始化,特别是循环控制变量,动态分配内存。


第十一条: 每遇到一个坑,请覆盖这条,继续添加。


经验就是由坑堆出来的,无数的坑,才能让我们写出,简洁而优雅的C代码。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值