Chapter 12: Fundamental Data Types
12.1: Numbers in General
- Replace “magic numbers” with named constant can make your code more readable and changes reliable and easy
 - Make type conversion obvious and avoid mixed-type comparisons
 
12.2: Integers
- Check for integer division and reorder the expression to put divisions the end
 - Check for integer overflow especially intermediate resutls overflow
 
12.3: Floating-Point Numbers
- Avoid additions and subtractions on numbers that have greatly different magnitudes
 - Sort the numbers before add a sequence of numbers that contains huge differences and add them starting with the smallest values
 - Replace equality comparisons with a accuracy check
 - Change from floating-point to integer variables by multipling constant times to deal with rounding errors
 
12.4: Characters and Strings
- Use Unicode if need multiple language support
 - To avoid endless strings in C, initialize strings to null
 
12.6: Enumerated Types
- Enumerated types are generally used when you know all the possible values of a variable and want to express them in English words
 - Enumerated types can increase readability, easier modifications
 - Enumerated types can be a richer alternative to boolean variables
 
12.7: Named Constant
- Named constant is a way of “parameterizing” the program
 
12.8: Arrays
- Arrays are the simplest and most common type of structured data
 - Make sure all array indexed are within the bounds of the array
 - Consider using container instead of arrays
 
12.9: Creating Your Own Types
- Programmer-defined types can make modifications easier, avoid excessive information distribution, and increase reliability
 - Create types with functionally orientated names and avoid creating type names that refer to predefined types like BigInteger