程序员们最爱犯的几个愚蠢错误

错误一空格引发的血案

 

1 @@ -348,7 +348,7 @@ case "$DISTRO" in

2 - rm -rf /usr /lib/nvidia-current/xorg/xorg

3 + rm -rf /usr/lib/nvidia-current/xorg/xorg

恩,确实没有比这个更愚蠢更严重的错误了!

 

 


错误二初学者最易犯的错误

 

1 int main() {...}

硬是写成了

 

1 int mian() {...}

编 译不通过,自己也硬是折腾了两个小时。开始,使用的是Code::Blocks,以为是IDE故障;后来,换成Visual Studio,问题依旧。紧接着,考虑到是不是自己的计算机问题,换成同学的计算机,问题依旧。我的代码没有逻辑问题呀,很简单。我甚至删除了所有的函 数、语句块,只留下一句:

 

1 printf("hello world!\n");

那时,我真的快哭了!也就是在某个瞬间,发现main这个单词写错了。亲身经历的故事,很愚蠢是吧!可是我依旧很怀恋初学C语言的那段日子。



错误三忽略编译器警告

忽略编译警告,或者编译警告没有全开。认真阅读编译器信息,它能解决很多你本来要花很长时间才能找到的问题。注意,很多经典的情况,编译器都会给警告,完全不需要通过所谓编程规则去限制,例如:

 

1 if ( p = NULL ) {}

很多书会推荐人写 NULL == p 这种模式,其实完全没有必要,因为这种错误编译器会检查出来。

 

1 pansz-pc:/tmp$ gcc -Wall 1.c

2 1.c: In function ‘main’:

3 1.c:6:5: warning: suggest parentheses around assignment used as truth value [-Wparentheses]

4 if ( p = NULL ) {

5 ^

下面来看另外一个例子:

 

 

 

1 #include

2 int main()

3 {

4 unsigned char i;

5 for (i = 0; i <= 255; i++) {

6 printf("%d\n", i);

7 }

8 return 0;

9 }

上面这段代码很多人觉得不会给警告,但它是有的:

 

1 pansz-pc:/tmp$ gcc -Wall -W 1.c

2 1.c: In function ‘main’:

3 1.c:7:5: warning: comparison is always true due to limited range of data type [-Wtype-limits]

4 for (i = 0; i <=255; i++)

5 ^

实际上,很多问题都是编译器警告能解决的,省掉你很多调试工作。

PS:珍惜生命,请从关爱Warning开始!

 

 


错误四边界条件处理

 

1 for (size_t i = vec.size() - 1; i >= 0; -- i) {

2 // .... Do something with vec[i]

3 }

这个蛋疼的写法编译器是会给Warning的,不过忽略Warning不是一个正(yu)常(chun)的程序员(wo)所必须干的事情么。这个错误有时发现不了是因为在循环内可能有break,说不定在中间就出去了。

 

 


错误五标点符号惹的祸

1 while(…);

2 {

3 ……

4 }

这个,不解释。相信很多人都在这上面摘过跟头。

 

 


错误六偷梁换柱

 

1 for(int i = 0; i < n; ++j)

这个,呵呵。本人亲历!

 

 


错误七python缩进

使用过python的人都有这个体会,有时候缩进错了,导致逻辑不按预定的来。多打两个空格什么的,最忧伤了!

 

 


错误八case…break

 

1 switch( i )

2 {

3 case 0:

4 str = "zero";

5

6 case 1:

7 str = "one";

8

9 case 2:

10 str = "two";

11 }

 

这个也是广大程序员经常犯的一个低级错误。

 

最后,总结一句话:吃大写的亏,上小写的当,检拼写的错,查空格的误!这些坑,你踩了几个????

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Boss_Commander

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值