Up to this point, we have relied on the variable's name as the sole provider of the purpose, which is our intended use of that variable. The name tells us (humans) what we expect that variable to contain. The computer doesn't really care since a variable is just a location in memory somewhere that holds some value of the given type.
For instance, we might have three variables to hold measurement values—height, width, and length. We could simply declare them as integers, as follows:
int height, width, length;
Their use as measurements is fairly obvious, but what are the intended units of measurement? We cannot tell this from the int type. However, by using typedef, we can add more useful context, as follows:
typedef int meters;
meters height, width, length;
height = 4;
width = height * 2;
length = 100;
meters has been defined as a synonym of the int type. Anywhere we use these, either as standalone variables or...