Hungarian Notation in C

Hungarian notation is a naming convention used in programming to provide additional information about the purpose, type, or scope of a variable, function, or other identifier.

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;

Source archive.org - https://web.mst.edu/~cpp/common/hungarian.html