- 论坛徽章:
- 0
|
本帖最后由 guoruimin 于 2010-11-13 11:19 编辑
- #include <stdio.h>
- int main(int argc, char *argv[])
- {
- char *msg;
- if (1 == argc)
- msg = "0 arg";
- else if (2 == argc)
- msg = "1 arg";
- //else
- // msg = "too more arg";
- printf("You input %s.\n", msg);
- return 0;
- }
复制代码 gcc -O2 -Wuninitialized test.c- test.c: In function ‘main’:
- test.c:5: warning: ‘msg’ may be used uninitialized in this function
复制代码 上垃圾代码- #include <stdio.h>
- int main(int argc, char *argv[])
- {
- char *msg = NULL;
- if (1 == argc)
- msg = "0 arg";
- else if (2 == argc)
- msg = "1 arg";
- //else
- // msg = "too more arg";
- printf("You input %s.\n", msg);
- return 0;
- }
复制代码 gcc -O2 -Wuninitialized test.c./a.out 1 2滥用初赋值,只会造成更大的隐患!
一些事情看似有道理,但如果不是反映客观现实所必须的,就会弄巧成拙。
许多事情,不是一眼就能看透,一拍脑袋就能想通的,所以人往往会被暂时的迷惑!
切记一点:一切行为,都要符合逻辑,反映客观现实,违背了这一点,必将弄巧成拙。
写程序当然也不例外!
程序的实现要反映客观现实,项目才不会被动,才不会要改来改去! |
|