Могу я спросить, почему вы хотите сохранить это в структуре? Это отправляется через сеть?
Что касается хранилища, компиляторы (или компоновщики, я не уверен) могут хранить одну и ту же строку в одном месте в разделе данных, если одна и та же точная строка используется более одного раза, поэтому использование макроса не плохо вещь. Лично я бы сделал что-то вроде этого:
const char *GetSoftwareVersion (void)
{
return "Version 7.0.1";
}
Если это для плагина-подобной архитектуры DLL, версия функции является наиболее подходящей (например, следующая:
const char *pluginVer = dll->GetSoftwareVersion(); // where GetSoftwareVersion is of type:
typedef const char *(* GetSoftwareVersionProc)(void);