xychcder xychcder
关注数: 0 粉丝数: 0 发帖数: 350 关注贴吧数: 0
经验的秘籍:C语言高效编程的四大绝招 经验的秘籍:C语言高效编程的四大绝招 详情查看中华学习网 http://www.chinahop.cn/Article/ShowArticle.asp?ArticleID=2771  编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就是针对编程工作中的一些体会和经验做相关的阐述。   第一招:以空间换时间   计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招--以空间换时间。比如说字符串的赋值:   方法A:通常的办法 详情查看中华学习网 http://www.chinahop.cn/Article/ShowArticle.asp?ArticleID=2771  #define LEN 32 char string1 [LEN]; memset (string1,0,LEN); strcpy (string1,"This is a example!!");   方法B: 详情查看中华学习网 http://www.chinahop.cn/Article/ShowArticle.asp?ArticleID=2771  const char string2[LEN] ="This is a example!"; char * cp; cp = string2 ;   使用的时候可以直接用指针来操作。   从上面的例子可以看出,A和B的效率是不能比的。在同样的存储空间下,B直接使用指针就可以操作了,而A需要调用两个字符函数才能完成。B的缺点在于灵活性没有A好。在需要频繁更改一个字符串内容的时候,A具有更好的灵活性;如果采用方法B,则需要预存许多字符串,虽然占用了大量的内存,但是获得了程序执行的高效率。 详情查看中华学习网 http://www.chinahop.cn/Article/ShowArticle.asp?ArticleID=2771    如果系统的实时性要求很高,内存还有一些,那我推荐你使用该招数。该招数的变招--使用宏函数而不是函数。举例如下:   方法C: #define bwMCDR2_ADDRESS 4 #define bsMCDR2_ADDRESS 17 int BIT_MASK(int __bf) {  return ((1U << (bw ## __bf)) - 1)<< (bs ## __bf); } void SET_BITS(int __dst, int __bf, int __val) {  __dst = ((__dst) & ~(BIT_MASK(__bf))) | \  (((__val) << (bs ## __bf)) & (BIT_MASK(__bf)))) } SET_BITS(MCDR2, MCDR2_ADDRESS,RegisterNumber); 详情查看中华学习网 http://www.chinahop.cn/Article/ShowArticle.asp?ArticleID=2771    方法D: #define bwMCDR2_ADDRESS 4 #define bsMCDR2_ADDRESS 17 #define bmMCDR2_ADDRESS BIT_MASK(MCDR2_ADDRESS) #define BIT_MASK(__bf) (((1U << (bw ## __bf)) - 1) << (bs ## __bf)) #define SET_BITS(__dst, __bf, __val) \ ((__dst) = ((__dst) & ~(BIT_MASK(__bf))) | \ (((__val) << (bs ## __bf)) & (BIT_MASK(__bf)))) SET_BITS(MCDR2, MCDR2_ADDRESS, RegisterNumber); 详情查看中华学习网 http://www.chinahop.cn/Article/ShowArticle.asp?ArticleID=2771 
绝对经典 C++初学者必看的50个建议 详情查看中华学习网http://www.chinahop.cn/Article/ShowArticle.asp?ArticleID=2770 1.把C++当成一门新的语言学习(和C没啥关系!真的。);   2.看《Thinking In C++》,不要看《C++变成死相》;   3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看;   4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言; 详情查看中华学习网http://www.chinahop.cn/Article/ShowArticle.asp?ArticleID=2770   5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;   6.会用Visual C++,并不说明你会C++;   7.学class并不难,template、STL、generic programming也不过如此——难的是长期坚持实践和不遗余力的博览群书; 详情查看中华学习网http://www.chinahop.cn/Article/ShowArticle.asp?ArticleID=2770   8.如果不是天才的话,想学编程就不要想玩游戏——你以为你做到了,其实你的C++水平并没有和你通关的能力一起变高——其实可以时刻记住:学C++是为了编游戏的;   9.看Visual C++的书,是学不了C++语言的;   10.浮躁的人容易说:XX语言不行了,应该学YY;——是你自己不行了吧!? 详情查看中华学习网http://www.chinahop.cn/Article/ShowArticle.asp?ArticleID=2770   11.浮躁的人容易问:我到底该学什么;——别问,学就对了;   12.浮躁的人容易问:XX有钱途吗;——建议你去抢银行;   13.浮躁的人容易说:我要中文版!我英文不行!——不行?学呀! 详情查看中华学习网http://www.chinahop.cn/Article/ShowArticle.asp?ArticleID=2770   14.浮躁的人容易问:XX和YY哪个好;——告诉你吧,都好——只要你学就行;   15.浮躁的人分两种:a)只观望而不学的人;b)只学而不坚持的人;   16.把时髦的技术挂在嘴边,还不如把过时的技术记在心里;   17.C++不仅仅是支持面向对象的程序设计语言; 详情查看中华学习网http://www.chinahop.cn/Article/ShowArticle.asp?ArticleID=2770   18.学习编程最好的方法之一就是阅读源代码;   19.在任何时刻都不要认为自己手中的书已经足够了;   20.请阅读《The Standard C++ Bible》(中文版:标准C++宝典),掌握C++标准; 详情查看中华学习网http://www.chinahop.cn/Article/ShowArticle.asp?ArticleID=2770   21.看得懂的书,请仔细看;看不懂的书,请硬着头皮看;   22.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍;   23.请看《Effective C++》和《More Effective C++》以及《Exceptional C++》; 详情查看中华学习网http://www.chinahop.cn/Article/ShowArticle.asp?ArticleID=2770   24.不要停留在集成开发环境的摇篮上,要学会控制集成开发环境,还要学会用命令行方式处理程序;   25.和别人一起讨论有意义的C++知识点,而不是争吵XX行不行或者YY与ZZ哪个好;   26.请看《程序设计实践》,并严格的按照其要求去做;   27.不要因为C和C++中有一些语法和关键字看上去相同,就认为它们的意义和作用完全一样; 详情查看中华学习网http://www.chinahop.cn/Article/ShowArticle.asp?ArticleID=2770   28.C++绝不是所谓的C的“扩充”——如果C++一开始就起名叫Z语言,你一定不会把C和Z语言联系得那么紧密;   29.请不要认为学过XX语言再改学C++会有什么问题——你只不过又在学一门全新的语言而已;   30.读完了《Inside The C++ Object Model》以后再来认定自己是不是已经学会了C++;
PHP 编码规范--不回复的不要看 详情查看中华学习网http://www.chinahop.cn/Article/ShowArticle.asp?ArticleID=6311 文件结构 ||――images|――include  |――parameter  |――config  |――function|――indeximages存放图片文件,include中是系统是要引用的文件,一般在parameter中存放参数文件,config中存放配置文件,function中存放方法文件,如javascript的方法等,并按功能模块的分类,将各功能的类也放入其中2 文件名文件夹命名一般采用英文,长度一般不超过20个字符,命名采用小写字母。除特殊情况才使用中文拼音,一些常见的文件夹命名如:images(存放图形文件),flash(存放Flash文件),style(存放CSS文件),scripts(存放javascript脚本),inc(存放include文件),link(存放友情链接),media(存放多媒体文件)等。文件名称统一用小写的英文字母、数字和下划线的组合。 详情查看中华学习网http://www.chinahop.cn/Article/ShowArticle.asp?ArticleID=6313.1 开头注释 所有的源文件都应该在开头有一个C语言风格的注释,其中列出类名、功能、版本信息、日期、作者和版权声明:/*详情查看中华学习网http://www.chinahop.cn/Article/ShowArticle.asp?ArticleID=631 * 类名 * 功能 * 版本 * 日期 * 作者 * 版权 */如果对文件进行了修改,应该在文件头中说明修改目的、修改日期、修改人,并变更文件的版本信息;如果修改问文件的一部分,则在文件中进行注释即可,并且标识出修改部分的起止位置……详情查看中华学习网http://www.chinahop.cn/Article/ShowArticle.asp?ArticleID=631/* * 修改目的 * 修改日期 * 修改人 * 版本 */……修改起始…………修改结束……3.2 引入语句 引入语句应该位于文件的头部,并在引入时说明引入文件的作用。例如://数据库操作类require( “db.php” );3.3 类的声明1 类文档注释(/**……*/) 该注释中所需包含的信息,参见"文档注释" 2 类的声明详情查看中华学习网http://www.chinahop.cn/Article/ShowArticle.asp?ArticleID=6313 类实现的注释(/*……*/)如果有必要的话 该注释应包含任何有关整个类的信息,而这些信息又不适合作为类文档注释。4 类的(静态)变量 首先是类的公共变量,随后是保护变量,再后是包一级别的变量(没有访问修饰符,access modifier),最后是私有变量。5 实例变量 首先是公共级别的,随后是保护级别的,再后是包一级别的(没有访问修饰符),最后是私有级别的。 6 构造器 7 方法 这些方法应该按功能,而非作用域或访问权限,分组。例如,一个私有的类方法可以置于两个公有的实例方法之间。其目的是为了更便于阅读和理解代码3.4 缩进排版 4个空格常被作为缩进排版的一个单位。缩进的确切解释并未详细指定(空格 vs. 制表符)。一个制表符等于8个空格(而非4个),所以在某些编辑器中,需要特别指定一下制表符的长度为4(UltraEdit),而在某些编辑器中,会将制表符转换为空格3.5 行长度尽量避免一行的长度超过80个字符,因为很多终端和工具不能很好处理之。3.6 换行 当一个表达式无法容纳在一行内时,可以依据如下一般规则断开之:- 在一个逗号后面断开- 在一个操作符前面断开- 宁可选择较高级别(higher-level)的断开,而非较低级别(lower-level)的断开- 新的一行应该与上一行同一级别表达式的开头处对齐- 如果以上规则导致你的代码混乱或者使你的代码都堆挤在右边,那就代之以缩进8个空格。 详情查看中华学习网http://www.chinahop.cn/Article/ShowArticle.asp?ArticleID=631以下是断开方法调用的一些例子:someMethod(longExpression1, longExpression2, longExpression3,              longExpression4, longExpression5);$var = someMethod1(longExpression1,                  someMethod2(longExpression2,                               longExpression3));以下是两个断开算术表达式的例子。前者更好,因为断开处位于括号表达式的外边,这是个较高级别的断开。详情查看中华学习网http://www.chinahop.cn/Article/ShowArticle.asp?ArticleID=631$longName1 = $longName2 * ($longName3 + $longName4 - $longName5)            + 4 * $longname6; //使用这种缩进方式$longName1 = $longName2 * ($longName3 + $longName4                    - $longName5) + 4 * $longname6; //避免这种以下是两个缩进方法声明的例子。前者是常规情形。后者若使用常规的缩进方式将会使第二行和第三行移得很靠右,所以代之以缩进8个空格//传统的缩进方式function someMethod($anArg, $anotherArg, $yetAnotherArg,           $andStillAnother) {...}//利用8个连续空格避免过渡的缩进function horkingLongMethodName($anArg,     $anotherArg, $yetAnotherArg,     $andStillAnother) {详情查看中华学习网http://www.chinahop.cn/Article/ShowArticle.asp?ArticleID=631
1 下一页