`
javatar
  • 浏览: 1699711 次
  • 性别: Icon_minigender_1
  • 来自: 杭州699号
社区版块
存档分类
最新评论

[摘]变量使用事项

阅读更多
摘自:《代码大全》

变量使用事项
1、“变量”在这里同时代表对象和内置数据类型。
2、要养成良好的创建变量的方法和习惯。
(1)对支持隐式变量声明的语言,在未声明变量时,编译器会自动声明变量,但这种做法不好。
(2)对支持隐式变量声明的语言,建议关闭隐式声明、声明全部变量、遵循某种命名规则、检查变量名。
3、变量初始化
(1)在声明变量的时候初始化。
(2)在靠近变量第一次使用的位置初始化。即就近原则,把相关的操作放在一起。
(3)理想情况下,在靠近第一次使用变量的位置声明和定义该变量。声明指定了变量的类型,定义为变量指定特定的取值,每个变量都应该在声明的同时被定义。
(4)在可能的情况下使用final或者const。final和const关键字在定义常量、输入参数以及任何初始化后其值不再发生改变的局部变量时非常有用。
(5)特别注意计数器和累加器。注意在下一次使用这些变量之前重置其值。
(6)在类的构造函数里初始化该类的数据成员。如果在构造函数里分配了内存,就应该在析构函数中释放。
(7)检查是否需要重新初始化。如果的确需要重新初始化,要确保初始化语句位于那些重复执行的代码内部。
(8)一次性初始化具名常量;用可执行代码来初始化变量。若想用变量来摸拟具名常量,则在程序开始处对常量做一次初始化即可。对于真正的变量,则应在靠近它们使用位置用可执行代码对其初始化。
(9)使用编译器设置来自动初始化所有变量。确保记下所使用的编译器设置。
(10)利用编译器的警告信息。
(11)检查输入参数的合法性。赋值前确保数值合理。
(12)使用内存访问检查工具来检查错误的指针。
(13)在程序开始时初始化工作内存。
4、变量的作用域
作用域或者可见性指的是变量在程序内的可见和可引用的范围。
(1)使变量引用局部化。好的做法是把对一个变量的引用局部化,即把引用点尽可能集中在一起,提高程序的可读性。(跨度)
(2)尽可能缩短变量的“存活”时间,即一个变量存在期间所跨越的语句的总数,开始于引用它的第一条语句,结束于引用它的最后一条语句。可以减少初始化错误的可能,会使代码更具可读性,也会使把相关的代码片断重构为单独的子程序会非常容易了。(生存时间)
5、减小作用域的一般原则
(1)在循环开始之前再去初始化该循环里使用的变量,而不是在该循环所属的子程序的开始处初始化这些变量。
(2)直到变量即将被使用时再为其赋值。让变量的赋值位置越明显越好。
(3)把相关语句放在一起。
(4)把相关语句组提取成单独的子程序。
(5)开始时采用最严格的可见性,然后根据需要扩展变量的作用域。在对变量的作用域进行选择时,应该倾向于选择该变量所能具有的最小的作用域:首选将变量局限于某个特定的循环,然后是局限于某个子程序,其次成为类的private变量,protected变量,再其次对包(package)可见,最后在不得已的情况下再把它作为全局变量。
6、变量的持续性
(1)在程序中加入调试代码或者断言来检查那些关键变量的合理取值。如果变量取值变得不合理,就发出警告信息通知去寻找是否有不正确的初始化。
(2)准备舍弃变量时给它们赋上“不合理的数值”。
(3)编写代码时要假设数据并没有持续性。
(4)养成在使用所有数据之前声明和初始化的习惯。
7、变量的绑定时间
即变量和它的值绑定在一起的时间,采取越晚的绑定时间会越有利。变量与数值绑定时间的情况:
(1)编码时(使用数值硬编码)
(2)编译时(使用具名常量)
(3)加载时(从外部数据源中读取数据)
(4)对象实例化时(如每次窗体创建时读取数据)
(5)即时(如每次窗体重绘时读取数据)
一般而言,绑定时间越早灵活性越差,但复杂度也会越低。但希望获得灵活性越强,则支持这种灵活性的代码就越复杂,出错几率也会越高。按照需要引入足够的灵活性来满足软件需求。
8、数据类型与控制结构
(1)序列型数据对应程序中的顺序语句。序列型数据是由一些按照特定顺序使用的数据组成的。若在一行中写有五条语句,每条语句都负责处理一项不同的数据,则它们就是顺序语句。
(2)选择型数据对应为程序中的if和case语句。选择型数据指的是一组在任一特定时刻有且仅有一项被使用的数据。相应的程序语句必须做出实际的选择。
(3)迭代型数据对应为程序中的for、repeat、while等循环结构。迭代型数据是需要反复进行操作的同类型的数据,通常保存为容器中的元素、文件中的记录或者数组中的元素。迭代型数据与负责读取数据的迭代型代码(即循环)相对应。
在使用过程中,可能结合了序列型、选择型和迭代型数据,可以把这几种简单的构造块组合起来描述更复杂的数据类型。
9、为变量指定单一用途
(1)每个变量只用于单一用途。
(2)避免让代码具有隐含含义。
(3)确保使用了所有已声明的变量。检查代码以确认使用了所有声明过的变量的习惯。
分享到:
评论

相关推荐

    labview功能性全局变量的详细使用

    本篇将详细介绍LabVIEW功能性全局变量的使用方法及其优势。 1. **全局变量的概念** 全局变量是一种在程序的不同部分都能访问的变量,与局部变量相比,它们在整个程序的生命周期内保持其值。在LabVIEW中,全局变量...

    使用变量前缀的画面窗口

    "使用变量前缀的画面窗口"是WINCC中的一个重要概念,旨在帮助用户更好地管理和组织项目中的变量。下面将详细阐述这一知识点。 首先,变量前缀在WINCC中起到了标识和分类的作用。当项目中包含大量变量时,为每个变量...

    sipp变量使用

    在SIP回拨测试场景中,SIPP变量的使用显得尤为重要,尤其是在处理A路监听和B路挂机操作的同步问题上。通过变量,我们可以有效地从接收到的消息中提取关键信息,并在后续的脚本中使用这些信息,以确保通信流程的正确...

    C++中类使用全局变量

    6. **封装**:如果一个变量需要在多个类之间共享,考虑使用静态成员变量或使用指针或引用传递,而不是全局变量。 总之,虽然全局变量在某些情况下可以简化代码,但过度依赖全局变量会导致代码难以理解和维护。在...

    kettle8 模拟表输入查询表名,然后在另一个表输入中使用变量使用

    在Kettle8中,模拟表输入查询表名并使用变量是一项常见的数据处理任务,它涉及到工作流中的动态数据源选择和参数化。Kettle8,也称为Pentaho Data Integration (PDI),是一款强大的ETL(提取、转换、加载)工具,...

    如何使用结构变量组态WINCC画面模板

    本文将详细介绍如何在WinCC V7.0 SP1中使用结构变量来组态画面模板,并提供两种主要方法:使用变量前缀的画面窗口和使用动态向导的画面模板。 首先,需要了解结构变量的基本概念。在WinCC中,结构变量是一种数据...

    day02_使用变量的注意事项_

    "day02_使用变量的注意事项_"这个主题着重于讲解在编程过程中如何正确、有效地使用变量,并且提到了不同进制在计算机中的应用。这里我们将深入探讨这两个重要概念。 首先,我们来看变量的使用注意事项: 1. **命名...

    InTouch如何使用间接变量[归纳].pdf

    InTouch 间接变量使用指南 InTouch 是一款功能强大且灵活的软件开发工具,它提供了多种功能来帮助开发者快速构建复杂的应用程序。在 InTouch 中,间接变量是一种非常重要的概念,它可以帮助开发者简化程序的编写、...

    QT中pro文件使用的系统变量的说明

    QT 中 Pro 文件使用的系统变量的说明 在 Qt 中,Pro 文件是用于生成 Makefile 的配置文件。Pro 文件中的系统变量是 qmake 用来生成 Makefile 的关键。下面是 Qt 中 Pro 文件中使用的系统变量的说明: TEMPLATE ...

    和利时网络变量说明

    本文档主要针对MACSV5.2.4版本中的网络变量组态方法及其注意事项进行了详细介绍。网络变量是控制器之间进行数据交互的重要手段,通过合理配置可以实现不同控制器之间的数据同步与通信。 #### 二、组态方法 ##### ...

    在C/C++项目中使用全局变量的方法

    ### 在C/C++项目中使用全局变量的方法 #### 概述 在开发C/C++项目时,有时需要在多个源文件之间共享数据或状态信息。全局变量作为一种简单且直观的数据共享方式,在某些场景下非常实用。然而,不当的使用全局变量...

    全局变量的使用

    Android用Application设置全局变量以及使用 如果想在整个应用中使用全局变量,在java中一般是使用静态变量,public类型;而在android中如果使用这样的全局变量就不符合Android的框架架构,但是可以使用一种更优雅...

    C语言中static变量使用方法

    ### C语言中static变量使用方法详解 在C语言编程中,`static`关键字扮演着一个非常重要的角色,尤其是在处理变量的存储方式、作用域以及生命周期方面。本文将深入探讨C语言中`static`变量的使用方法,包括静态局部...

    QT 使用全局变量的方法 - 郭小郭的专栏 - CSDN博客1

    QT 使用全局变量的方法 在QT编程中,全局变量的使用有时是必要的,特别是在需要在不同类或函数之间共享数据的情况下。然而,全局变量的使用应该谨慎,因为它们可能破坏封装性和增加代码的复杂性。以下是两种在QT中...

    static静态变量使用@Value注入方式.md

    ### static静态变量使用@Value注入方式 #### 一、引言 在Java开发中,特别是基于Spring框架的应用程序中,开发者经常会遇到需要为类中的成员变量注入外部配置值的情况。Spring框架提供了多种注入机制,其中`@Value...

    全局 局部变量以及static 变量区别

    - **注意事项**: 静态变量有助于减少全局变量的使用,提高程序的可维护性。 #### 二、存储空间分配 - **全局变量**和**静态全局变量**: - **位置**: 静态存储区(数据段)。 - **特性**: 在程序的整个运行过程中都...

    定义全局变量 变量 全局

    在MFC(Microsoft Foundation Classes)框架中,全局变量和函数的使用与标准C++有所不同,因为MFC工程通常由多个文件组成,需要一种方法来在这些文件之间共享数据和功能。这里将介绍两种在MFC工程中定义全局变量和...

    C#中静态变量的使用

    C#中静态变量的使用 C# 中静态变量的使用是指在 C# 语言中使用静态变量的方法和技术。本文将详细介绍静态变量与非静态变量的区别、静态变量的使用方式、静态构造函数的使用等方面的知识点。 一、静态变量与非静态...

Global site tag (gtag.js) - Google Analytics