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; |