| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 11795 人关注过本帖, 1 人收藏
标题:初学者必看■+好东西■
只看楼主 加入收藏
I喜欢c
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:64
帖 子:1749
专家分:0
注 册:2007-3-2
结帖率:80%
收藏(1)
 问题点数:0 回复次数:82 
初学者必看■+好东西■

前为 《初学者必看》
后为 《C语言编写风格 》 (还是说简单点好!)

C语言程序设计入门学习六步曲

http://bbs.bc-cn.net/viewthread.php?tid=132947
介绍有:C语言程序设计入门学习六步曲
成为编程高手的二十二条军规
成为编程高手的八大奥秘

经典推荐:怎样学习C语言:
http://bbs.bc-cn.net/viewthread.php?tid=128140&star=at#


初学者必看(转)
1.不要看到别人的回复第一句话就说:给个代码吧!你应该想想为什么。当你自己想 出来再参考别人的提示,你就知道自己和别人思路的差异。
2.别小家子气,买本书几十块都舍不得,你还学个P。为了省钱看电子书,浪费的时间绝对超过书的价值。当然如果查资料,只能看PDF。
3.刚接触一个软件,什么都不懂,就盲目的问东问西,让人看起来很幼稚。
4.不要蜻蜓点水,得过且过,细微之处往往体现实力。
5.把时髦的技术挂在嘴边,还不如把过时的技术记在心里。
6.看得懂的书,请仔细看;看不懂的书,请硬着头皮看。 .别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍。
7.多实践,调试,去写去调.
8.保存好你做过的所有的源程序、PCB、原理图等----那是你最好的积累之一。
9.对于网络,还是希望大家能多利用一下,很多问题不是非要到论坛来问的,首先你要学会自己找答案,比如google、百度都是很好的搜索引擎,你只要输入关键字就 能找到很多相关资料,别老是等待别人给你希望,看的出你平时一定也很懒!
10 到一个论坛,你学会去看以前的帖子,不要什么都不看就发帖子问,也许你的问题早就有人问过了,你再问,别人已经不想再重复了,做为初学者,谁也不希望自己的帖子没人回的。
11,虽然不是打击初学者,但是这句话还是要说:论坛论坛,就是大家讨论的地方,如果你总期望有高手总无偿指点你,除非他是你亲戚!!讨论者,起码是水平相当的才有讨论的说法,如果水平真差距太远了,连基本操作都需要别人给解答,谁还跟你讨论呢。

什么样的人是浮躁的人?
浮躁的人容易问:我到底该学什么;----踏踏实实的学点基本的吧?c语言不会想搞LINUX?别老是好高骛远。
浮躁的人容易问:谁有xxx源码?--(你给人家多少钱啊?自己的劳动白送你?)
浮躁的人容易说:跪求xxx ---(就算网络也要点尊严吧?)
浮躁的人容易说:紧急求救---(其实只是个简单的课程设计)
浮躁的人容易说:有没有xxx中文资料?---一个字:懒。别说别的。E文不行?谁不是从ABC学起的啊?
浮躁的人容易说:求xxx,我的email是xxx@xxx.com,然后消失 ---- 你以为你是大爷啊,人家请你吃饭,还要喂到你口里不成?
浮躁的人容易问:做单片机有钱途吗----只是为了钱,搞不好技术的,你去抢银行好了。
浮躁的人容易说:哪里有xxx芯片资料?(其实大部分资料网络上都有,但是偏偏来找人问,懒!)
浮躁的人分两种:只观望而不学的人;只学而不坚持的人;
浮躁的人永远不是一个高手。


当开发人员把C语言程序写的越来越长的时候,他们发现维护这些程序需要花更多的功夫去读以前所编写的程序。保持一种良好的编码风格,对于一个开发团队或者自主开发者都是一件好事情。在这里要介绍的编程风格就是为了让初学者了解C语言的一些编写风格,使自己编写的程序,可读性,移植性,可维护性等更好,这是学习C语言必须学习的一种技能。这就象我们写文章一样,段落缩进两个文字这样的风格.

1、 缩进

  对于函数,选择,循环控制,在进入下级的程序段时,为了使结构清晰,一般将下级的程序段向后缩进一段位置。缩进的大小是为了清楚的定义一个块的开始和结束,特别是当你已经编写了很长的代码时,你会发现一个大的缩进格式使得你对程序的理解更容易,因为程序更有层次感,可以最快的找到需要查看的程序块。

  建议使用一个TAB位置(8个字节)进行缩进,有些代码编辑工具显示一个TAB位置为4个字节,这些都能使程序更清晰。现在,有一些人说,使用8个字符的缩进使得代码离右边很近,在80个字符宽度的终端屏幕上看程序很难受。回答是,但你的程序有3个以上的缩进的时候,你就应该修改你的程序。总之,8个字符的缩进使得程序易读,还有一个附加的好处,就是它能在你将程序变得嵌套层数太多的时候给你警告。这个时候,你应该修改你的程序,太多的嵌套对于程序执行的效率和易读性都是致命的杀手,可以考虑使用函数或者改变程序结构。

  int fother()

  {

      程序块

      if(...)

      {

          程序块

      }

      else

      {

          程序块

      }

      for(...)

      {

          程序块

      }

  }

2、 大括号的位置

  一般情况下,有下列几种书写方式:

  (1)

  if(x>y)

  {

      t=x;
x=y;
y=t;

  }

  (2)Kernighan和Ritchie的经典方式

  if(x>y){

      t=x;
x=y;
y=t;

  }

  (3)

  if(x>y) { t=x; x=y; y=t;}

  推荐使用(1)方式,很明显,这种方式能更清楚的看到程序块的开始和结束的位置。但对于很简单的程序块,也可以使用(3)方式。

3、 命名系统

  除了常用的规则,如#define 常量应全部大写,变量命名的基本规则等之外,还要养成一个良好的命名的习惯。不要使用汉语拼音命名,尽量使用英文单词,常用的缩写,下划线,数字等,这样更容易理解变量的意义。但是也要避免过长的变量名和函数名。

  当一个工程越做越大,命名可以越来越难,因为重名现象会时有发生。现在比较流行的命名规则如匈牙利命名法很好的解决了这个问题。匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。这些符号可以多个同时使用,顺序是先m_(成员变量),再指针,再简单数据类型,再其他。例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。

  可能有些开发人员认为匈牙利命名法有些冗长,但对于开发过程中,这种命名法则可以比较系统的,彻底的解决命名问题。但对于比较小的程序,也可以使用简单的命名方式。

4、函数

  函数应该短小而迷人,而且它只作一件事情。它应只覆盖一到两个屏幕,并且只作一件事情,而且将它做好。

  一个函数的最大长度和函数的复杂程度以及缩进大小成反比。于是,如果你已经写了简单但长度较长的的函数,而且你已经对不同的情况做了很多很小的事情,写一个更长一点的函数也是无所谓的。

  然而,假如你要写一个很复杂的函数,而且你已经估计到假如一般人读这个函数,他可能都不知道这个函数在说些什么,这个时候,使用具有描述性名字的有帮助的函数。

  另外一个需要考虑的是局部变量的数量。他们不应该超过5-10个,否则你有可能会出错。重新考虑这个函数,将他们分割成更小的函数。人的大脑通常可以很容易的记住7件不同的事情,超过这个数量会引起混乱。你知道你很聪明,但是你可能仍想去明白2周以前的做的事情。

5、 注释

  注释一般采取的两种方式:对一个程序块注释和对一行程序注释。

  /*比较x,y大小*/

  if(x>y)

  {

      t=x;
x=y;
y=t; /*交换x,y*/

  }

  注释是一件很好的事情,但是过多的注释也是危险的,不要试图区解释你的代码是注释如何如何的好。你应该将代码写得更好,而不是花费大量的时间去解释那些糟糕的代码。

  通常情况下,你的注释是说明你的代码做些什么,而不是怎么做的。而且,要试图避免将注释插在一个函数体里。假如这个函数确实很复杂,你需要在其中有部分的注释,最好还是把复杂的函数拆分成几个简单的函数。也可以将注释写在函数前,告诉别人它做些什么事情,和可能为什么要这样做。

6、 空格与空行

  不要让自己的程序过于拥挤,这样同样影响可读性,善于使用空格区分一句程序中的变量,符号,表达式等,使他们对照整齐或者更清晰。善于使用空行区分程序块。

  例如:

  name = "young";

  age = 21;

  college = "ZIT";

  例如:

  if ( (x>100) || (x<0) )

结束语

  对于这些约定俗成的风格,不一定非要严格的去使用,你也可以有自己独特的风格。但是在团队开发时,一定要统一例如命名系统等主要的风格,这样团队成员协同工作能达到一个最好的效率。记住一点,我们的目的应该是写出可读性,移植性,可维护性等更好的程序。

[此贴子已经被作者于2007-7-26 12:40:51编辑过]

搜索更多相关主题的帖子: C语言 php viewthread 
2007-04-11 22:41
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
大括号:
看到好多别人的代码是
while(){
...

}

我比较喜欢这样
while()
{
...
}

这个我一直没弄懂,前面的那个到底有什么好处.

倚天照海花无数,流水高山心自知。
2007-04-11 22:45
I喜欢c
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:64
帖 子:1749
专家分:0
注 册:2007-3-2
收藏
得分:0 
不过我看好多书上那样写的......

 我是指针,却丢失了目标地址!          我是循环,却缺少了结束条件!      我是函数,却没有人来调用!   
2007-04-11 22:48
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
收藏
得分:0 
以下是引用nuciewth在2007-4-11 22:45:24的发言:
大括号:
看到好多别人的代码是
while(){
...

}

我比较喜欢这样
while()
{
...
}

这个我一直没弄懂,前面的那个到底有什么好处.

JAVA和C++的书一般喜欢像上面这样写
我也比较常用下面的这种写法


这个社会太复杂。。。
2007-04-11 23:17
I喜欢c
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:64
帖 子:1749
专家分:0
注 册:2007-3-2
收藏
得分:0 
有什么好的建议可以修改...

根据大家习惯~```

 我是指针,却丢失了目标地址!          我是循环,却缺少了结束条件!      我是函数,却没有人来调用!   
2007-04-11 23:18
冰天雪
Rank: 1
等 级:新手上路
威 望:1
帖 子:331
专家分:0
注 册:2007-2-27
收藏
得分:0 
这遍精华http://bbs.bc-cn.net/viewthread.php?tid=84540&star=at#
编程规范也可借签
2007-04-12 13:05
阿超来了
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-3-29
收藏
得分:0 
各有各的风格,不过辛苦了看的人!看懂就好!呵呵........
2007-04-13 13:31
走刀口→超
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:5018
专家分:0
注 册:2006-3-14
收藏
得分:0 
以下是引用nuciewth在2007-4-11 22:45:24的发言:
大括号:
看到好多别人的代码是
while(){
...

}

我比较喜欢这样
while()
{
...
}

这个我一直没弄懂,前面的那个到底有什么好处.

你不是学JAVA了么?JAVA一般都这么写!嘿嘿!


人在江湖【走】,怎能不挨【刀】;为了能活【口】,唯有把己【超】!come on...
2007-04-14 09:16
lzf0112
Rank: 1
等 级:新手上路
帖 子:244
专家分:0
注 册:2006-4-9
收藏
得分:0 

坚持自己的原则,I LIKE 下面那一种!

2007-04-14 20:03
多维数组
Rank: 1
等 级:新手上路
帖 子:238
专家分:0
注 册:2006-8-16
收藏
得分:0 
以下是引用nuciewth在2007-4-11 22:45:24的发言:
大括号:
看到好多别人的代码是
while(){
...

}

我比较喜欢这样
while()
{
...
}

这个我一直没弄懂,前面的那个到底有什么好处.

习惯了,我觉得前者在纸上写程序时更节约纸张,所以...


有事发邮件:tzp_1210@
2007-04-15 10:24
快速回复:初学者必看■+好东西■
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037564 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved