首页 > 其他分享 >07代码大全2阅读笔记

07代码大全2阅读笔记

时间:2023-06-02 20:45:49浏览次数:42  
标签:初始化 变量 检查 代码 绑定 笔记 大全 隐式 07

第十章 变量

 

 隐式声明可能带来错误。

  应该尽量避免隐式声明(问题:python中无法避免隐式声明);遵循良好的命名规则并经常检查。

 

 变量初始化策略
 在声明时初始化。

 第一次使用时初始化。

 理想情况下,在第一次使用时生命并初始化变量。

 可能情况下使用final和const。

 特别注意计数器、累加器。

 在类的构造函数中初始化其成员。

 检查是否需要重新初始化。

 由编译器初始化所有变量。

 注意编译器的警告信息。

 如果用输入数据初始化变量,记得检查输入信息合法性。

 使用内存访问工具检查指针是否错误。

 程序开始时将工作内存初始化为特定值,已检查可能的错误。

 

“攻击窗口”:两次引用同一变量中间的间隔期间,变量可能被修改。

  为了减少“攻击窗口”,尽量使变量局部化;减小变量引用之间的跨度;减少变量存活时间,理想的存活时间为第一次引用到最后一次引用。

 减小变量作用域的一般原则:

 循环变量应该在循环开始中再定义,即for(int i=0; …; …)而非一开始就定义一个i。

 将相关联的、涉及同一些变量的代码放在一起。必要的话,抽出来作为一个子程序。

 采用最严格的可见性,需要的话再进行拓展。

 

 变量的持续性:有些时候变量已经“死亡”,但引用时仍然返回原值,使人误以为没有错误。

  应该:

 用调试代码或断言检查错误的变量取值。

 抛弃变量时设定其为不合理的值,如delete指针后将指针设为null。

 编写代码时假定其无持续性。

 养成使用变量前声明并初始化变量的习惯。

 

 绑定时间:在编写时绑定(硬编码)不灵活、难拓展。应该晚绑定。

 晚绑定时间:

 在编译时绑定:如宏定义、const、具名常量。

 加载时:从外部数据源读取数据。

 对象实例化时。

 调用函数时。

 

 数据结构和处理数据的控制结构可以一一对应。顺序数据,如若干个不同数据,对应顺序结构。选择数据结构对应选择结构。迭代式数据结构,如容器、文件,对应循环结构。

 

 一个变量只应有一个功能,避免隐含含义。

 

标签:初始化,变量,检查,代码,绑定,笔记,大全,隐式,07
From: https://www.cnblogs.com/qwb0614/p/17452863.html

相关文章

  • 08代码大全2阅读笔记
    第十一章变量名的力量  变量名应该完全、准确地表示变量指代的事物。避免xxxxxx一类无意义变量名,避免dattmp一类泛泛的变量名。 长度:最佳为10~16个字符,8~20个字符也可以。 变量名与作用域: 短变量名,如itmp常常用作临时变量。有些人因为短变量名有风险,所以建议即使临......
  • 数据治理专业认证CDMP学习笔记(思维导图与知识点)- 第10章参考数据和主数据篇
    大家好,我是独孤风,一位曾经的港口煤炭工人,目前在某国企任大数据负责人,公众号大数据流动主理人。在最近的两年的时间里,因为公司的需求,还有大数据的发展趋势所在,我开始学习数据治理的相关知识。数据治理需要进行系统的学习才能真正掌握,也需要进行专业的考试认证才能证明自己在数据治理......
  • 最新SQL手工注入语句&SQL注入大全
    最新SQL手工注入语句&SQL注入大全 (转载)看看下面的1.判断是否有注入;and1=1;and1=22.初步判断是否是mssql;anduser>03.判断数据库系统;and(selectcount(*)fromsysobjects)>0mssql;and(selectcount(*)frommsysobjects)>0access4.注入参数是字符'and[查询条件]an......
  • stm32笔记[7]-串口多字节收发
    主要功能使用AliosThingsDevkit开发板实现串口多字节收发,使用内部RTC时钟和AD转换.硬件平台开发板:AliosThingsDevkit芯片:stm32l496vgt6系统时钟:80MHzLED1:PB6(低电平有效)LED2:PE3(低电平有效)LED3:PD15(低电平有效)STLK_TX:PB10(LPUART1)STLK_RX:PB11(LPUA......
  • 学习笔记——软件、软件分类、软件测试、数据的形式与数制(进制之间的转化)
    2023-06-02一、软件1、软件包含的内容:程序、数据和文档①程序:一遍是由编程语言编写的,例如:C、C++、java、Python等。②数据:一般使用文件或者数据库来存储数据③文档:包括安装说明书、帮助文档、许可协议等。 2、软件分类2.1安装功能用途分类(1)系统软件例如:操作系统:Unix、W......
  • bzoj 1007: [HNOI2008]水平可见直线(模拟栈)
    http://www.lydsy.com/JudgeOnline/problem.php?id=10071007:[HNOI2008]水平可见直线TimeLimit: 1Sec  MemoryLimit: 162MBSubmit: 7644  Solved: 2922[Submit][Status][Discuss]Description在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往......
  • 三个博弈-巴什博奕、威佐夫博弈、尼姆博弈。acm博弈算法笔记HDU 2149,1850,1527
    博弈论(一)、acm博弈基础算法BashGame,NimGame和WythoffGame(即巴什博奕、尼姆博弈、威佐夫博弈)Bash  Game: 同余理论Nim   Game: 异或理论WythoffGame: 黄金分割(二)、三个博弈。1、巴什博奕。只有一堆n个物品,两个人轮流从这堆物品中取物, 规定每次至少取一个,......
  • Day07-内部类
    内部类成员内部类package内部类;​publicclassOuter{  privateintage=10;  publicvoidout(){    System.out.println("这是外部类的方法"); }​  publicclassInner{    publicvoidinner(){      System.out.printl......
  • 循环神经网络 RNN LSTM GRU 笔记
    文章目录1.神经网络基础2.RNN循环神经网络2.1背景与概念2.2RNN基本方法2.3拓展3.LSTM3.1概念3.2LSTM基本方法3.3原理解释4.GRU4.1概念与背景4.2GRU基本方法1.神经网络基础上图是一个简单的全连接神经网络结构,每一条连接线上都有一个权重,蕴含着网络学得的“能力”。......
  • opencv 读取图片 图片数据处理 笔记
    1.python中各类图片读取工具的比较参考Python各类图像库的图片读写方式总结可知,opencv的性能表现最好。opencvyyds相关文章收藏:Python-OpenCV:cv2.imread(),cv2.imshow(),cv2.imwrite()Python各类图像库的图片读写方式总结2.opencv常用函数2.1读取图片cv2.imread(filename,fla......