Charles Simonyi is credited with first discussing Hungarian Notation. It is a variable naming convention that includes C++ information about the variable in its name (such as data type, whether it is a reference variable or a constant variable, etc). Every company and programmer seems to have their own flavor of Hungarian Notation. The following is just what we thought seemed easy for beginning students to understand.
Prefix |
Type |
Example |
b
|
boolean
|
bool bStillGoing;
|
c
|
character
|
char cLetterGrade;
|
str
|
C++ String
|
string strFirstName;
|
si
|
short integer
|
short siChairs;
|
i
|
integer
|
int iCars;
|
li
|
long integer
|
long liStars;
|
f
|
floating point
|
float fPercent;
|
d
|
double-precision floating point
|
double dMiles;
|
ld
|
long double-precision floating point
|
long double ldLightYears;
|
sz
|
Old-Style Null Terminated String
|
char szName[NAME_LEN];
|
if
|
Input File Stream
|
ifstream ifNameFile;
|
is
|
Input Stream
|
void fct(istream &risIn);
|
of
|
Output File Stream
|
ofstream ofNameFile;
|
os
|
Output Stream
|
void fct(ostream &rosIn);
|
S
|
declaring a struct
|
struct SPoint {
|
C
|
declaring a class
|
class CPerson {
|
struct name or abbrev
|
declaring an instance of a struct
|
SPoint pointLeft; SPoint ptLeft; // or abbrev. (be consistent)
|
class name or abbrev
|
declaring an instance of a class
|
CPerson personFound; CPerson perFound; // or abbrev. (be consistent) |
The following table contains letters that go before the above prefixes.
Pre-prefix |
Type |
Example |
u
|
unsigned
|
unsigned short usiStudents;
|
k
|
constant formal parameter
|
void fct(const long kliGalaxies)
|
r
|
reference formal parameter
|
void fct(long &rliGalaxies)
|
s
|
static
|
static char scChoice;
|
rg
|
array (stands for range)
|
float rgfTemp[MAX_TEMP];
|
m_
|
member variable of a struct or class
|
char m_cLetterGrade;
|
p
|
pointer to a single thing
|
char *pcGrade;
|
prg
|
dynamically allocated array
|
char *prgcGrades; |