There’s one more (at least) road to Rome:
static const char HELLO3 = "Howdy";
static — optional — is to prevent it from conflicting with other files). I’d prefer this one over
const char*, because then you’ll be able to use
sizeof(HELLO3) and therefore you don’t have to postpone till runtime what you can do at compile time.
The define has an advantage of compile-time concatenation, though (think
HELLO ", World!") and you can
sizeof(HELLO) as well.
But then you can also prefer
const char* and use it across multiple files, which would save you a morsel of memory.
In short — it depends.