It is far easier to determine the nature and usage of a variable if its data type is known to the reader. Variable names may be prefixed with mnemonics indicating their data type, in a similar way to that proposed for symbolic names and constants. A list of suggested prefixes for various data types is given in Table "Type Prefixes for Variables".
For example, a character string variable (a zero- or null-terminated string) named WindowTitle might have an attached mnemonic prefix of sz to indicate the data type, making the variable name szWindowTitle. This is a simple example; to take a more complex instance, a handle to a window might have a variable name hMainWindow, which would differentiate it in the source code from a window procedure wpMainWindow or other data items relating to the window, while maintaining an indication of the relationship between the items by the similarity in their names.
Prefixing variable names in this way has the additional advantage that a compiler cross-reference listing will group together all variables of the same data type. Any redundancies may thus be seen at a glance.
A pointer to a variable is indicated by using an additional prefix p before the prefix indicating the data type of the variable. Some examples are shown in Table "Type Prefixes for Pointers".
As a further example, an unsigned integer UserResponse might have a prefix of us making the variable name usUserResponse. A pointer to this variable would have the name pusUserResponse. The name thus indicates both the data type of the pointer and its relationship with the variable to which it points.