代码大全学习-15-基础数据类型(Fundamental Data Types)

本文档主要总结了在使用基础数据类型时需要注意的关键点,包括整型、浮点数、字符与字符串、布尔变量、枚举类型、常量和数组。检查清单涵盖了避免魔法数字、类型转换、溢出问题、比较错误等多个方面,旨在确保代码的清晰、可靠和可维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这一章没什么好说的,需要注意的checklist里都列出来了,用的时候一条一条对着看就行了。

Checklist: Fundamental Data Types

Numbers in General

  • Does the code avoid magic numbers? 
  • Does the code anticipate divide-by-zero errors? 
  • Are type conversions obvious? 
  • If variables with two different types are used in the same expression, will the expression be evaluated as you intend it to be? 
  • Does the code avoid mixed-type comparisons? 
  • Does the program compile with no warnings? 

Integers

  • Do expressions that use integer division work the way they're meant to? 
  • Do integer expressions avoid integer-overflow problems? 

Floating-Point Numbers

  • Does the code avoid additions and subtractions on numbers with greatly different magnitudes? 
  • Does the code systematically prevent rounding errors? 
  • Does the code avoid comparing floating-point numbers for equality? 

Characters and Strings

  • Does the code avoid magic characters and strings? 
  • Are references to strings free of off-by-one errors? 
  • Does C code treat string pointers and character arrays differently? 
  • Does C code follow the convention of declaring strings to be length constant+1? 
  • Does C code use arrays of characters rather than pointers, when appropriate? 
  • Does C code initialize strings to NULLs to avoid endless strings? 
  • Does C code use strncpy() rather than strcpy()? And strncat() and strncmp()?

Boolean Variables

  • Does the program use additional boolean variables to document conditional tests? 
  • Does the program use additional boolean variables to simplify conditional tests? 

Enumerated Types

  • Does the program use enumerated types instead of named constants for their improved readability, reliability, and modifiability? 
  • Does the program use enumerated types instead of boolean variables when a variable's use cannot be completely captured with TRUE and FALSE? 
  • Do tests using enumerated types test for invalid values? 
  • Is the first entry in an enumerated type reserved for "invalid"? 

Named Constants

  • Does the program use named constants for data declarations and loop limits rather than magic numbers? 
  • Have named constants been used consistently-not named constants in some places, literals in others? 

Arrays

  • Are all array indexes within the bounds of the array? 
  • Are array references free of off-by-one errors? 
  • Are all subscripts on multidimensional arrays in the correct order? 
  • In nested loops, is the correct variable used as the array subscript, avoiding loop-index cross talk? 

Creating Types

  • Does the program use a different type for each kind of data that might change? 
  • Are type names oriented toward the real-world entities the types represent rather than toward programming-language types? 
  • Are the type names descriptive enough to help document data declarations? 
  • Have you avoided redefining predefined types? 
  • Have you considered creating a new class rather than simply redefining a type?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值