`
luowei31
  • 浏览: 81219 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

一些简单编程技巧的总结(一)

阅读更多

  技巧:程序应以类似RISC(精简指令系统计算机)的形式来编写。换句话说,尽量简化你的代码,而不是使它更复杂。处理器特别喜欢简单指令,而不是复杂的指令,你的程序可以长些,但应尽量使用简单指令,使程序相对于编辑器来说更加简单些。例如,不要编写类似下面的程序:

  if((x+=(2*buffer[index++])>10)
  {
   //进行工作
  }//结束

  应这样做
  x+=(2*buffer[index]);
  index++
  if(x>10)
  {
   //进行工作
  }//结束if


  技巧:尽量使用32位变量而不用8位变量或16位变量,Pentium和之后的处理器全部都是32位的,这就意味着它们并不喜欢8位或16位的数据字符,实际上,更小的数据可能会由于超高速缓存和其他相关的内存寻址异常而使速度下降,例如,读者可能创建一个如下所示的结构:
  struct CPOINT
  {
   short x,y;
   unsigned char c;
  }//结束CPINT
  尽管这个结构看上去很好,但实际并非如此!首先,结构本身目前是一个5字符长的结构——2个short+1个char=5。这实际上是一个很差的设计,这将导致内存地址崩溃。更好的结构形式如下:
  struct CPOINT
  {
   int x,y;
   int c;
  }//结束CPINT

  技巧:使用内联功能。通过使用内联指令来完全摆脱调用功能甚至能够改善上面的技巧。内联指令不调用函数,而指示编译器将被调用函数代码放在需要调用该函数的最佳位置,这样做会使程序变得更大,但却提高了运行速度。下面是一个实例。
  inline void Plot_I (int x,int y,int color)
  {
   //在屏幕上画一个点像素
   video_buffer[x + y * MEMORY_PITCH] = color;
  }//结束Plot_I

  技巧:不要怕使用全局变量,许多视频游戏不使用大量的带有形参的、与时间相关的函数,而是使用一个全局变量来代替,例如一个函数的代码如下:
  void Plot(int x,int y,int color)
  {
   //在屏幕上画一个点像素
   video_buffer[x + y * MEMORY_PITCH] = color;
  }//结束Plot
  函数体运行的时间小于函数调用所需的时间。这是由于参数压入和弹出堆栈造成的。在这种情况下,更好的方法可能是创建一个全局变量,然后在调用前进行赋值,像下面一样:
  int gx,gy,gz,gcolor;//定义一些全局变量
  void Plot_G(void)
  {
   //使用全局变量来画一个点像素
   video_buffer(gx + gy * MEMORY_PITCH] = gcolor;
  }//结束Plot_G

  技巧:使用内联功能。通过使用内联指令来完全摆脱调用功能甚至能够改善上面的技巧。内联指令不调用函数,而指示编译器将被调用函数代码放在需要调用该函数的最佳位置,这样做会使程序变得更大,但却提高了运行速度。下面是一个实例。
  inline void Plot_I (int x,int y,int color)
  {
   //在屏幕上画一个点像素
   video_buffer[x + y * MEMORY_PITCH] = color;
  }//结束Plot_I
  注意:这里并没有使用全局变量,因为编辑器有效运行了相同类型数据的别名,但是全局变量迟早会派上用场,如果在函数调用时,一个或两个形参已改变,由于没有重新加载,所以旧的参数值有可能仍被使用。

  技巧:按照这种方式来编写代码有两个原因,首先,它允许调试程序在代码各部分之间放置断点;第二,这将更易于编译器向Pentium处理器传送简单指令,这样将使处理器使用更多的执行单元并行地处理代码。复杂的代码就比较糟糕。

  对于简单的、是2的倍数的整数乘法运算,应使用二进制移位运算。因为所有的数据在计算机中都以二进制存储,位组合向左或右移动就等同于乘法和除法运算。例如:
  int y_pos = 10
  //将y_pos乘以64
  y_pos = (y_pos << 6);//2^6=64

  相似的有

  {
  //将y_pos除以8
  y_pos = (y_pos >> 3);//1/2^3=1/8

分享到:
评论

相关推荐

    JSP实用技巧集合,jsp编程的一些小技巧总结

    jsp编程的一些小技巧总结,绝对实用。包括JSP编程中常用的js技术。 1.JSP编程中常用的js技术 2. 在下拉列表框里选择一个值后跳出新窗口? 3. 在JSP中启动execl? 4. 两级下拉列表框联动菜单? 5. java中如何把一个目录...

    关于VB编程的小技巧总结

    在VB(Visual Basic)编程中,掌握一些实用的小技巧能够极大地提升开发效率和代码质量。...同时,参考压缩包中的"VB编程技巧小全.chm"手册,以及在线资源如"Pudn.com"上的论坛讨论,可以获取更多实用技巧和经验分享。

    EMC单片机编程技巧集锦

    本文档汇集了一系列EMC单片机编程技巧,特别是针对EM78系列单片机的实用编程方法。 #### 二、EM78系列单片机简介 EM78系列单片机自问世以来,因其小巧灵活的特点而受到广泛欢迎。该系列单片机拥有不同的封装形式和...

    精彩编程与编程技巧-Visual Basic 的数据库编程...

    ### 精彩编程与编程技巧—Visual Basic 的数据库编程 #### 一、引言 在计算机技术领域中,数据库编程是一项重要的技能,它能够帮助开发者有效地管理数据、提高应用程序的功能性和灵活性。Visual Basic(简称VB)...

    精彩编程与编程技巧-奇数和偶数校验...

    根据给定的信息,本文将围绕“精彩编程与编程技巧—奇数和偶数校验”这一主题展开,探讨如何在程序设计中实现对数字奇偶性的判断,并通过具体的示例代码来加深理解。 ### 一、奇偶性校验的重要性 在计算机科学中,...

    10年经验总结四大编程技巧(C语言)

    在深入探讨这四大编程技巧之前,首先要明确一个概念,即C语言的效率问题,它主要体现在程序运行速度和占用系统资源之间的平衡。接下来,我们将详细探讨每个技巧的具体内容和应用场景。 1. 以空间换时间 这个技巧是...

    Nature 总结 ChatGPT 六个编程技巧.zip

    这个名为"Nature总结ChatGPT六个编程技巧.zip"的压缩包文件,很可能是《Nature》杂志或者相关研究者对ChatGPT在编程领域的应用进行了深入研究,并提炼出了一些实用技巧。以下是对这些编程技巧的详细解析: 1. **...

    C语言高效编程技巧.pdf

    "C语言高效编程技巧.pdf" 这篇文章主要讨论了C语言高效编程的技巧和经验总结,包括预编译处理命令、宏定义、可变参数、局部变量和全局变量、显示时间等多方面的知识点。 1. 预编译处理命令 #define 宏定义只是在...

    dephi语言最新编程技巧200例

    【Delphi语言最新编程技巧200例】深入解析 Delphi是一种基于Object Pascal的高效、强大的编程语言,它融合了C++的复杂性和Visual Basic的简洁性,为程序员提供了理想的开发工具。与C++相比,Delphi在内存管理、模板...

    精彩编程与编程技巧-VB游戏写作技巧(1)秀图篇...

    在《精彩编程与编程技巧-VB游戏写作技巧(1)秀图篇》这篇文章中,作者主要介绍了使用Visual Basic (简称VB) 进行游戏开发时的图像处理技巧。其中重点讲述了如何利用PictureBox控件来显示和管理游戏中的图像资源。 ...

    精彩编程与编程技巧-表或查询是否存在...

    ### 知识点一:精彩编程与编程技巧 #### 1.1 编程技巧的重要性 编程技巧对于程序员来说至关重要。它不仅能够帮助提高代码的可读性和可维护性,还能提升开发效率。例如,在本示例中展示了一种检查数据库中是否存在...

    总结了90条简单实用的Python编程技巧!.docx

    本文总结了90条简单实用的Python编程技巧,涵盖了编程原则、Pythonic概念、代码编写、函数设计、常量管理、断言、数据交换、惰性计算、枚举替代、类型检查、变量转换、安全漏洞、迭代器、比较操作、 Unicode、包管理...

    全国计算机二级C语言C++上机编程题技巧总结和答案.pdf

    以下是对历年考试编程题的一些总结和应对策略。 首先,针对【编程题做题方法一:使用C语言特有的函数做题】,这类题型主要依赖于C语言的标准库函数。例如,在解决将数字字符串转化为整数的问题时,可以使用`atol()`...

    C函数编程技巧

    【C函数编程技巧】 C语言的核心之一就是函数,它使得代码可以被组织成独立的、可重用的模块。函数编程技巧是C语言学习的重要环节,尤其对于初学者,理解和掌握函数的使用能够极大地提高编程效率和代码质量。本文将...

    游戏编程--大师技巧

    第一部分 Windows编程基础  第一章 无尽之旅  历史一瞥  设计游戏  游戏类型  集思广益  设计文档和情节图板  使游戏具有趣味性  游戏的构成  常规游戏编程指导  使用工具  从准备到完成一使用编译器  ...

    初学VC常用技巧 VC编程经验总结

    在学习Visual C++(以下简称VC)的过程中,掌握一些常用的编程技巧和经验是提升开发效率的关键。本文将根据提供的标题、描述以及部分代码示例,深入探讨VC编程中的一些核心知识点,帮助初学者快速上手。 #### 一、...

    matlab高效编程技巧

    综上所述,《MATLAB高效编程技巧与应用:25个案例分析》不仅是一本介绍MATLAB编程技巧的书籍,更是一部集理论与实践于一体的综合性指南,旨在帮助读者掌握MATLAB高效编程的核心理念和技术,提升解决实际问题的能力。

    Python 编程技巧与实例分享

    Python 编程技巧与实例分享 Python 编程技巧与实例分享是 Python 编程语言的必备技能,旨在帮助读者掌握 Python 编程的技巧和实例。本文将详细介绍列表和字典的应用、函数的高级用法、文件操作和异常处理等方面的...

    51单片机C语言的编程技巧

    总结,学习51单片机C语言编程技巧不仅需要掌握C语言基础,还要理解51单片机的硬件结构,熟悉中断、定时器、串行通信等核心功能。通过不断的实践和项目开发,才能逐步成长为一名熟练的51单片机开发者。在"51单片机 ...

Global site tag (gtag.js) - Google Analytics