Having a resource for character strings may seem odd at first. Certainly we haven't had any problem using regular old character strings defined as variables right in our source code.
Character string resources are primarily for easing the translation of your program to other languages. As you'll discover in the next two chapters, menus and dialog boxes are also part of the resource script. If you use character string resources rather than put strings directly into your source code, then all text that your program uses will be in one file—the resource script. If the text in this resource script is translated, all you need do to create a foreign-language version of your program is relink the program and add the translated resources to the .EXE file. This method is much safer than messing around with your source code. (Of course, you could also choose to define all your character strings as macros and store them in a header file. This method also avoids altering source code during language translations.)
A second reason for using character string resources is to reduce memory space. This reason is less obvious—in fact, if you use character string resources inefficiently, you might not reduce memory space at all. We'll examine this problem after we get through the basics.