All symbol names must be unique within the scope of the application. This prevents conflicting symbol definitions in the header files. Allowed characters for a symbol name include A-Z, a-z, 0-9, and underscores ( _ ). Symbol names cannot begin with a number and are limited to 247 characters. Symbol names are not case sensitive, but the case of the first symbol definition is preserved.
Symbol names can be used more than once in your application. For example, if you are writing a data-entry program with several dialog boxes containing a text box for a person’s Social Security number, you may want to give all the related text boxes a symbol name of IDC_SSN. To do this, you can define a single symbol and use it as many times as needed.
Although it is not required, symbol names are often given descriptive prefixes that indicate the kind of resource or object they represent. The Microsoft Foundation Class Library (MFC) uses the symbol naming conventions shown in the following table.
Category | Prefix | Use |
Resources | IDR_ IDD_ IDC_ IDI_ IDB_ |
Accelerator or menu (and associated resources) Dialog box Cursor Icon Bitmap |
Menu items | IDM_ | Menu item |
Commands | ID_ | Command |
Controls and child windows | IDC_ | Control |
Strings | IDS_ IDP_ |
String in the string table String-table string used for message boxes |