I have a C program written for some embedded device in English.
So there are codes like:

```
SomeMethod("Please select menu");
OtherMethod("Choice 1");

```

Say I want to support other languages, but I don't know how much memory I have with this device. I don't want to store strings in other memory areas where I *might* have less space and crash the program. So I want to store strings in the same memory area and take the same space. So I thought of this:

```
SomeMethod(SELECT_MENU);
OtherMethod(CHOICE_1);

```

And a separate header file:

English.h

```
#define SELECT_MENU "Please select menu"
#define CHOICE_1 "Choice 1"

```

For other languages:

French.h

```
#define SELECT_MENU "Text in french"
#define CHOICE_1 "same here"

```

Now depending which language I want I would include that header file only.

Does this satisfy the requirement that if I select English version my internationalized programs' `strings` will be stored **on same memory region** and take same memory as my previous one? (**I know French might take more - but that is other issue related that French letters take more bytes**). 

I thought since I will use `defines` strings will be placed at same place in memory they were before.